Function at 0x140053830
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xe8
lea rbp, [rsp + 0x80]
mov r14, rdx
mov qword [rbp + 0x30], rcx
mov eax, dword [0x1400d6500]
imul eax, dword [0x1400d6504]
xor eax, 0x85cbd768
and eax, 0x1c7c7ded
mov ecx, 0x5fb1ff46
xor edx, edx
div ecx
cmp eax, 0x7a77efa7
ja 0x140053fe1
mov qword [rbp - 0x28], r14
jmp 0x140053883
mov r12d, dword [0x1400d6508]
mov eax, dword [0x1400d650c]
xor r12d, eax
add r12d, 0xdaea04ae
xor r12d, 0xcc00004e
and r12d, 0xfc4c04ee
mov eax, 0x10
call fcn.14009e480
sub rsp, rax
mov qword [rbp - 0x38], rsp
mov eax, 0x20
call fcn.14009e480
sub rsp, rax
mov qword [rbp - 0x30], rsp
mov eax, 0x30
call fcn.14009e480
sub rsp, rax
mov qword [rbp + 0x10], rsp
mov eax, 0x20
call fcn.14009e480
sub rsp, rax
mov qword [rbp - 0x78], rsp
mov eax, 0x20
call fcn.14009e480
sub rsp, rax
mov qword [rbp - 0x10], rsp
mov eax, 0x30
call fcn.14009e480
sub rsp, rax
mov qword [rbp - 0x20], rsp
mov eax, 0x20
call fcn.14009e480
sub rsp, rax
mov qword [rbp - 8], rsp
mov eax, 0x20
call fcn.14009e480
sub rsp, rax
mov rbx, rsp
mov eax, 0x20
call fcn.14009e480
sub rsp, rax
mov r14, rsp
mov eax, 0x10
call fcn.14009e480
sub rsp, rax
mov r13, rsp
mov eax, 0x20
call fcn.14009e480
sub rsp, rax
mov rsi, rsp
mov eax, 0x30
call fcn.14009e480
sub rsp, rax
mov r15, rsp
mov eax, 0x20
call fcn.14009e480
sub rsp, rax
mov rdi, rsp
sub rsp, 0x20
mov rcx, rdi
mov rdx, qword [rbp - 0x28]
call fcn.140059f20
add rsp, 0x20
mov al, byte [rdi]
cmp al, 0x12
sete cl
cmp r12d, 0xc6d0ce4
jbe 0x140053883
mov r12, qword [rbp - 0x38]
mov qword [rbp], rsi
mov qword [rbp + 0x28], r14
mov qword [rbp - 0x70], rbx
mov qword [rbp + 0x50], r15
mov qword [rbp + 0x38], r13
mov rsi, qword [rbp + 0x10]
mov r15, qword [rbp - 0x30]
test cl, 1
jne 0x1400539d1
jmp 0x140053f93
mov r14, qword [rdi + 8]
mov rcx, qword [rdi + 0x10]
mov rax, qword [rdi + 0x18]
mov qword [rbp - 0x18], rax
imul rax, rax, 0x18
mov rbx, rcx
add rcx, rax
mov qword [rbp - 0x68], rcx
sub rsp, 0x20
call fcn.14007ced0
add rsp, 0x20
mov rdi, rax
cmp qword [rdi], 0
mov qword [rbp + 0x20], r14
jne 0x140053a62
sub rsp, 0x20
mov rcx, r12
xor edx, edx
mov r8d, 0x10
call fcn.1400aed70
mov rcx, r12
mov edx, 0x10
call qword [sym.imp.bcryptprimitives.dll_ProcessPrng]
add rsp, 0x20
mov rcx, qword [r12]
mov rdx, qword [r12 + 8]
mov r8, rdi
add r8, 8
mov qword [rdi], 1
mov qword [rdi + 8], rcx
mov qword [rdi + 0x10], rdx
mov r14, r15
mov r13, qword [rbp - 0x20]
mov rdi, qword [rbp + 0x50]
mov r9, qword [rbp + 0x28]
mov r12, rbx
jmp 0x140053adb
mov eax, dword [0x1400d6510]
xor edx, edx
div dword [0x1400d6514]
add eax, 0xa39612bc
or eax, 0x9ada72b
xor eax, 0x798cd75c
cmp eax, 0xa0ae4373
jb 0x1400540aa
mov eax, dword [0x1400d6518]
add eax, dword [0x1400d651c]
sub eax, 0x1f611d89
mov ecx, 0x8cf076e5
xor edx, edx
div ecx
mov ecx, 0xafa24c34
xor edx, edx
div ecx
mov r8, rdi
add r8, 8
mov rcx, qword [rdi + 8]
mov rdx, qword [rdi + 0x10]
cmp eax, 0xd7259193
ja 0x1400540aa
mov r14, r15
mov r13, qword [rbp - 0x20]
mov rdi, qword [rbp + 0x50]
mov r9, qword [rbp + 0x28]
mov r12, rbx
jmp 0x140053adb
mov rax, rcx
add rax, 1
mov qword [r8], rax
lea rax, [0x1400b6810]
mov qword [rdi], rax
mov rax, qword [0x1400b6828]
mov qword [rdi + 8], rax
mov rax, qword [0x1400b6830]
mov qword [rdi + 0x10], rax
mov rax, qword [0x1400b6838]
mov qword [rdi + 0x18], rax
mov qword [rdi + 0x20], rcx
mov qword [rdi + 0x28], rdx
mov rax, rsi
add rax, 8
mov rdx, r13
add rdx, 8
mov rcx, r9
add rcx, 8
cmp qword [rbp - 0x18], 0
sete r15b
test r15b, 1
jne 0x140053f10
mov qword [rbp - 0x58], rcx
mov qword [rbp - 0x60], rax
mov rax, qword [rbp - 8]
mov rcx, rax
add rcx, 8
mov qword [rbp + 0x48], rcx
add rax, 0x10
mov qword [rbp + 8], rax
mov rax, qword [rbp - 0x10]
add rax, 0x10
mov qword [rbp - 0x50], rax
mov rax, qword [rbp]
add rax, 0x10
mov qword [rbp - 0x48], rax
add r9, 0x10
mov qword [rbp - 0x40], r9
mov r8, r12
mov byte [rbp + 0x66], r15b
mov r15, r12
mov rax, r8
add r8, 0x18
mov r12, rax
add r12, 8
mov rdi, qword [rax + 8]
mov rbx, rax
add rbx, 0x10
mov r9, qword [rax + 0x10]
xor ecx, ecx
cmp r9, 0
jl 0x140053c02
mov qword [rbp + 0x58], r8
mov qword [rbp + 0x40], rdx
cmp r9, 0
sete cl
mov eax, 1
mov byte [rbp + 0x67], cl
test cl, 1
jne 0x140053c0e
mov al, byte [0x1400d7030]
sub rsp, 0x20
mov rcx, r9
mov edx, 1
mov rsi, r14
mov r14, r9
call fcn.1400541c0
mov r9, r14
mov r14, rsi
mov rsi, qword [rbp + 0x10]
add rsp, 0x20
mov ecx, 1
cmp rax, 0
je 0x140053c02
jmp 0x140053c0e
sub rsp, 0x20
mov rdx, r9
call fcn.14005f780
sub rsp, 0x20
mov qword [rbp + 0x18], rax
mov rcx, rax
mov rdx, rdi
mov rdi, r9
mov r8, r9
call fcn.1400ae6d0
add rsp, 0x20
mov r9, qword [rbx]
mov r8, qword [r12]
sub rsp, 0x20
mov rcx, rsi
mov rdx, qword [rbp - 0x28]
call fcn.14005a140
add rsp, 0x20
mov rax, qword [rsi]
mov r8, qword [rbp - 0x60]
mov rcx, qword [r8]
mov rdx, qword [rbp - 0x78]
mov qword [rdx], rcx
mov rcx, qword [r8 + 8]
mov qword [rdx + 8], rcx
mov rcx, qword [r8 + 0x10]
mov qword [rdx + 0x10], rcx
mov rcx, qword [r8 + 0x18]
mov qword [rdx + 0x18], rcx
cmp rax, 0
je 0x140053cb3
mov rax, qword [rdx]
mov r8, qword [rbp + 0x40]
mov qword [r8], rax
mov rax, qword [rdx + 8]
mov qword [r8 + 8], rax
mov rax, qword [rdx + 0x10]
mov qword [r8 + 0x10], rax
mov rax, qword [rdx + 0x18]
mov qword [r8 + 0x18], rax
mov rbx, qword [rbp + 0x30]
mov r12, r15
mov r14, qword [rbp + 0x20]
mov rcx, qword [rbp + 0x38]
mov r15, qword [rbp + 0x50]
mov rdx, rdi
mov r9b, byte [rbp + 0x67]
jmp 0x140053d12
mov rax, qword [rdx]
mov qword [r14], rax
mov rax, qword [rdx + 8]
mov qword [r14 + 8], rax
mov rax, qword [rdx + 0x10]
mov qword [r14 + 0x10], rax
mov rax, qword [rdx + 0x18]
mov qword [r14 + 0x18], rax
sub rsp, 0x20
mov rcx, r13
mov rdx, r14
call fcn.14003daf0
add rsp, 0x20
mov rax, qword [r13]
cmp rax, 0
mov r12, r15
je 0x140053d80
mov rbx, qword [rbp + 0x30]
mov r14, qword [rbp + 0x20]
mov rcx, qword [rbp + 0x38]
mov r15, qword [rbp + 0x50]
mov r8, qword [rbp + 0x40]
mov rdx, rdi
mov r9b, byte [rbp + 0x67]
jmp 0x140053d12
mov rdi, qword [r8]
mov rsi, qword [r13 + 0x10]
mov rax, qword [r13 + 0x18]
mov qword [rcx], rax
mov rax, qword [r13 + 0x20]
mov qword [rcx + 8], rax
test r9b, 1
jne 0x140053d49
sub rsp, 0x20
mov rcx, qword [rbp + 0x18]
mov r8d, 1
call fcn.1400541d0
mov rcx, qword [rbp + 0x38]
add rsp, 0x20
mov qword [rbx + 8], rdi
mov qword [rbx + 0x10], rsi
mov rax, qword [rcx]
mov qword [rbx + 0x18], rax
mov rax, qword [rcx + 8]
mov qword [rbx + 0x20], rax
mov qword [rbx], 0
sub rsp, 0x20
mov rcx, r15
call fcn.14003f070
add rsp, 0x20
mov r15b, byte [rbp + 0x66]
jmp 0x140053f31
mov rdx, qword [rbp + 0x40]
mov rax, qword [rdx]
mov rcx, qword [rbp - 0x10]
mov qword [rcx], rax
mov rax, qword [rdx + 8]
mov qword [rcx + 8], rax
mov rax, qword [rdx + 0x10]
mov qword [rcx + 0x10], rax
mov rax, qword [rdx + 0x18]
mov qword [rcx + 0x18], rax
mov rax, qword [rcx]
mov rdx, qword [rbp + 0x38]
mov qword [rdx], rax
mov rax, qword [rcx + 8]
mov qword [rdx + 8], rax
mov rcx, qword [rbp - 0x50]
mov rax, qword [rcx]
mov r8, qword [rbp - 0x48]
mov qword [r8], rax
mov rax, qword [rcx + 8]
mov qword [r8 + 8], rax
mov rax, qword [rdx]
mov rcx, qword [rbp]
mov qword [rcx], rax
mov rax, qword [rdx + 8]
mov qword [rcx + 8], rax
mov r8, qword [rbp + 0x28]
mov qword [r8], rdi
mov rax, qword [rbp - 0x58]
mov rdx, qword [rbp + 0x18]
mov qword [rax], rdx
mov rax, qword [rbp - 0x40]
mov qword [rax], rdi
mov rax, qword [rcx]
mov r9, qword [rbp - 0x70]
mov qword [r9], rax
mov rax, qword [rcx + 8]
mov qword [r9 + 8], rax
mov rax, qword [rcx + 0x10]
mov qword [r9 + 0x10], rax
mov rax, qword [rcx + 0x18]
mov qword [r9 + 0x18], rax
sub rsp, 0x20
mov rbx, qword [rbp - 8]
mov rcx, rbx
mov rdi, qword [rbp + 0x50]
mov rdx, rdi
call fcn.14003f770
add rsp, 0x20
mov al, byte [rbx]
cmp al, 0x11
mov r15b, byte [rbp + 0x66]
mov r8, qword [rbp + 0x58]
je case.0x140053e5d.0
movzx ecx, al
sub al, 0xf
ja 0x140053e5f
lea rax, [0x1400b6890]
movsxd rcx, dword [rax + rcx*4]
add rcx, rax
jmp rcx
sub rsp, 0x20
mov rcx, qword [rbp + 0x48]
call fcn.1400590e0
mov r8, qword [rbp + 0x58]
add rsp, 0x20
jmp case.0x140053e5d.0
mov rax, qword [rbp + 0x48]
mov rdx, qword [rax]
cmp rdx, 0
je case.0x140053e5d.0
mov rax, qword [rbp + 8]
mov rcx, qword [rax]
sub rsp, 0x20
mov r8d, 1
call fcn.1400541d0
mov r8, qword [rbp + 0x58]
add rsp, 0x20
jmp case.0x140053e5d.0
sub rsp, 0x20
mov rbx, qword [rbp + 0x48]
mov rcx, rbx
call fcn.140048100
mov r8, qword [rbp + 0x58]
add rsp, 0x20
mov rdx, qword [rbx]
cmp rdx, 0
je case.0x140053e5d.0
mov rax, qword [rbp + 8]
mov rcx, qword [rax]
shl rdx, 5
sub rsp, 0x20
mov r8d, 8
call fcn.1400541d0
mov r8, qword [rbp + 0x58]
add rsp, 0x20
jmp case.0x140053e5d.0
sub rsp, 0x20
mov rcx, qword [rbp + 0x48]
call fcn.1400590e0
mov r8, qword [rbp + 0x58]
add rsp, 0x20
cmp r8, qword [rbp - 0x68]
mov rdx, qword [rbp + 0x40]
jne 0x140053b86
jmp 0x140053f10
sub rsp, 0x20
mov rbx, qword [rbp + 0x30]
mov rcx, rbx
mov rdx, rdi
mov r8d, 0x30
call fcn.1400ae6d0
add rsp, 0x20
mov r14, qword [rbp + 0x20]
test r15b, 1
jne 0x140053f71
xor esi, esi
jmp 0x140053f3b
imul rcx, rsi, 0x18
mov rax, r12
add rax, rcx
add rsi, 1
mov rdx, qword [rax]
cmp rdx, 0
je 0x140053f69
mov rcx, qword [rax + 8]
sub rsp, 0x20
mov r8d, 1
call fcn.1400541d0
add rsp, 0x20
cmp rsi, qword [rbp - 0x18]
jne 0x140053f3b
jmp 0x140053f71
cmp r14, 0
je 0x140053fcd
imul rdx, r14, 0x18
sub rsp, 0x20
mov rcx, r12
mov r8d, 8
call fcn.1400541d0
add rsp, 0x20
jmp 0x140053fcd
mov ecx, dword [rdi + 1]
mov rbx, qword [rbp + 0x30]
mov dword [rbx + 9], ecx
mov cx, word [rdi + 5]
mov word [rbx + 0xd], cx
mov cl, byte [rdi + 7]
mov byte [rbx + 0xf], cl
mov rcx, qword [rdi + 8]
mov rdx, qword [rdi + 0x10]
mov r8, qword [rdi + 0x18]
mov qword [rbx + 0x10], rcx
mov qword [rbx + 0x18], rdx
mov qword [rbx + 0x20], r8
mov byte [rbx + 8], al
mov qword [rbx], 0
mov rax, rbx
lea rsp, [rbp + 0x68]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
pop rsi
invalid
add cl, byte [rsi + 0x1b3f7487]
invalid