Function at 0x18025d4b0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xd8
lea rbp, [rsp + 0x80]
mov rbx, rdx
mov qword [rbp + 0x40], rcx
mov eax, dword [0x1805204e8]
and eax, dword [0x1805204ec]
xor eax, 0x6fbdd20f
xor eax, 0xcca87739
and eax, 0x3bf16f2e
cmp eax, 0x8ecf34d3
ja 0x18025e08b
jmp 0x18025d4fa
mov r12d, dword [0x1805204f0]
mov eax, dword [0x1805204f4]
xor r12d, eax
or r12d, 0x614c7415
xor r12d, 0x7a5322bf
mov eax, 0x30
call fcn.18045a590
sub rsp, rax
mov qword [rbp + 0x18], rsp
mov eax, 0x40
call fcn.18045a590
sub rsp, rax
mov r13, rsp
mov eax, 0x30
call fcn.18045a590
sub rsp, rax
mov qword [rbp + 0x28], rsp
mov eax, 0x20
call fcn.18045a590
sub rsp, rax
mov qword [rbp + 0x30], rsp
mov eax, 0x30
call fcn.18045a590
sub rsp, rax
mov rdi, rsp
mov eax, 0x20
call fcn.18045a590
sub rsp, rax
mov qword [rbp + 0x48], rsp
mov eax, 0x20
call fcn.18045a590
sub rsp, rax
mov r15, rsp
mov eax, 0x20
call fcn.18045a590
sub rsp, rax
mov r9, rsp
mov byte [r9], 0x12
mov qword [r15], rbx
mov rsi, r15
add rsi, 8
mov qword [r15 + 8], r8
mov qword [r15 + 0x10], r9
mov r14, r8
lea r8, [rbp + 0x57]
sub rsp, 0x20
mov rcx, r13
mov rdx, r15
mov qword [rbp + 0x38], r9
call fcn.18027b820
mov r8, r14
add rsp, 0x20
mov rcx, qword [r13]
cmp r12d, 0x500c74d7
jb 0x18025d4fa
jmp 0x18025d5e6
mov eax, dword [0x1805204f8]
imul eax, dword [0x1805204fc]
or eax, 0xe9e9184b
mov r8d, 0xadda3b42
xor edx, edx
div r8d
mov r8d, 0xc993ee7f
xor edx, edx
div r8d
cmp eax, 0x3c258ddc
ja 0x18025e133
jmp 0x18025d61b
mov edx, dword [0x180520500]
imul edx, dword [0x180520504]
or edx, 0x65f008d9
add edx, 0x6f794aef
and edx, 0x8896f070
cmp rcx, 0
sete al
cmp edx, 0x57ceb477
jbe 0x18025d61b
test al, 1
jne 0x18025d64f
jmp 0x18025d654
jmp 0x18025d949
mov r12, qword [r13 + 8]
add r13, 0x10
sub rsp, 0x20
mov rcx, qword [rbp + 0x28]
mov rdx, r13
mov r8d, 0x28
call fcn.180468b10
add rsp, 0x20
cmp r12, 0
je 0x18025d949
sub rsp, 0x20
mov rsi, rdi
mov rcx, rsi
mov rdx, qword [rbp + 0x28]
mov r8d, 0x28
call fcn.180468b10
add rsp, 0x20
mov al, byte [0x1805297c8]
sub rsp, 0x20
mov ecx, 0xc0
mov edx, 8
call fcn.1802cbf10
add rsp, 0x20
mov rdi, rax
cmp rdi, 0
jne 0x18025d727
sub rsp, 0x20
mov ecx, 8
mov edx, 0xc0
call fcn.180407090
add rsp, 0x20
mov eax, dword [0x180520508]
sub eax, dword [0x18052050c]
or eax, 0x946fa7e2
add eax, 0x12387988
sub eax, 0x53b933f6
cmp eax, 0xc95db0d5
jae 0x18025e144
jmp 0x18025d702
mov eax, dword [0x180520510]
imul eax, dword [0x180520514]
or eax, 0x4099f754
xor eax, 0x2cc0cd0a
and eax, 0x9cf4306d
cmp eax, 0xb8054af1
je 0x18025d702
ud2
mov qword [rdi], r12
mov rcx, rdi
add rcx, 8
sub rsp, 0x20
mov rdx, rsi
mov r8d, 0x28
call fcn.180468b10
add rsp, 0x20
mov rax, qword [rbp + 0x48]
mov qword [rax], 4
mov rcx, rax
add rcx, 8
mov qword [rbp + 0x20], rcx
mov qword [rax + 8], rdi
mov r14, rax
add r14, 0x10
mov qword [rax + 0x10], 1
mov rax, qword [r15]
mov rbx, qword [rbp + 0x30]
mov qword [rbx], rax
mov rax, qword [r15 + 8]
mov qword [rbx + 8], rax
mov rax, qword [r15 + 0x10]
mov qword [rbx + 0x10], rax
mov r15, rbx
add r15, 0x10
lea rsi, [rbp - 0x50]
add rsi, 8
lea r13, [rbp - 0x50]
add r13, 0x10
mov r9, qword [r15]
lea rcx, [rbp - 0x50]
lea r8, [rbp + 0x57]
sub rsp, 0x20
mov rdx, rbx
call fcn.18027b820
add rsp, 0x20
mov r12d, 1
cmp qword [rbp - 0x50], 0
je 0x18025d7d3
mov r12d, 1
jmp 0x18025d7e0
jmp 0x18025d7d3
mov rsi, qword [rbp + 0x40]
mov rdi, qword [rbp + 0x38]
jmp 0x18025d920
mov rbx, qword [rsi]
lea rcx, [rbp - 0x78]
sub rsp, 0x20
mov rdx, r13
mov r8d, 0x28
call fcn.180468b10
add rsp, 0x20
cmp rbx, 0
je 0x18025d912
lea rdx, [rbp - 0x78]
sub rsp, 0x20
mov rcx, qword [rbp + 0x18]
mov r8d, 0x28
call fcn.180468b10
add rsp, 0x20
mov rax, qword [rbp + 0x48]
cmp r12, qword [rax]
je 0x18025d889
imul rax, r12, 0x30
mov rcx, rdi
add rcx, rax
mov qword [rcx], rbx
add rcx, 8
sub rsp, 0x20
mov rdx, qword [rbp + 0x18]
mov r8d, 0x28
call fcn.180468b10
add rsp, 0x20
add r12, 1
mov qword [r14], r12
mov r9, qword [r15]
lea rcx, [rbp - 0x50]
lea r8, [rbp + 0x57]
sub rsp, 0x20
mov rbx, qword [rbp + 0x30]
mov rdx, rbx
call fcn.18027b820
add rsp, 0x20
cmp qword [rbp - 0x50], 0
je 0x18025d7d1
jmp 0x18025d7e0
mov eax, dword [0x180520518]
xor eax, dword [0x18052051c]
xor eax, 0x1f65aadf
imul eax, eax, 0xa2954350
add eax, 0x92d778bc
cmp eax, 0x9f4026f5
je 0x18025e151
jmp 0x18025d8b2
mov eax, dword [0x180520520]
xor eax, dword [0x180520524]
xor eax, 0x9bef0600
and eax, 0x95ed0238
mov ecx, 0x447f923e
xor edx, edx
div ecx
mov edi, eax
sub rsp, 0x30
mov rcx, qword [rbp + 0x48]
mov rdx, r12
mov r8d, 1
mov r9d, 8
mov qword [rsp + 0x20], 0x30
call fcn.180268a00
add rsp, 0x30
cmp edi, 0xba61641
ja 0x18025d8b2
jmp 0x18025d906
mov rax, qword [rbp + 0x20]
mov rdi, qword [rax]
jmp 0x18025d82b
mov rsi, qword [rbp + 0x40]
mov rbx, qword [rbp + 0x30]
mov rdi, qword [rbp + 0x38]
jmp 0x18025d920
add rbx, 8
sub rsp, 0x20
mov rcx, rbx
call fcn.1802d31e0
add rsp, 0x20
mov rax, qword [rbp + 0x48]
mov r15, qword [rax]
mov rax, qword [rbp + 0x20]
mov rbx, qword [rax]
cmp byte [rdi], 0x12
jne 0x18025d9b3
jmp 0x18025d99f
sub rsp, 0x20
mov rcx, rsi
call fcn.1802d31e0
add rsp, 0x20
mov rcx, qword [rbp + 0x38]
mov al, byte [rcx]
cmp al, 0x12
sete al
mov rsi, qword [rbp + 0x40]
xor r15d, r15d
mov ebx, 8
test al, 1
mov r12d, 0
jne 0x18025d99f
jmp 0x18025d97c
mov rax, qword [rcx]
mov qword [rsi], rax
mov rax, qword [rcx + 8]
mov qword [rsi + 8], rax
mov rax, qword [rcx + 0x10]
mov qword [rsi + 0x10], rax
mov rax, qword [rcx + 0x18]
mov qword [rsi + 0x18], rax
jmp fcn.18025e029
mov qword [rsi + 8], r15
mov qword [rsi + 0x10], rbx
mov qword [rsi + 0x18], r12
mov byte [rsi], 0x12
jmp fcn.18025e029
mov rax, qword [rdi]
mov qword [rsi], rax
mov rax, qword [rdi + 8]
mov qword [rsi + 8], rax
mov rax, qword [rdi + 0x10]
mov qword [rsi + 0x10], rax
mov rax, qword [rdi + 0x18]
mov qword [rsi + 0x18], rax
cmp r12, 0
sete al
test al, 1
jne 0x18025df58
jmp 0x18025d9e2
xor r8d, r8d
jmp fcn.18025d9e7
jmp fcn.18025e081
adc al, 0x78
invalid
invalid
invalid