Function at 0x18025c040
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 rbx, rdx
mov rsi, rcx
mov r13, rbx
add r13, 0x41
cmp byte [r13], 0
sete al
test al, 1
jne 0x18025c06e
jmp 0x18025c458
mov r10, qword [rbx + 0x10]
mov rax, rbx
add rax, 0x18
mov r12, qword [rax]
mov rbp, rbx
add rbp, 0x20
mov rdi, qword [rbx + 0x20]
mov r14, qword [rbx + 0x28]
cmp r14, rdi
setb al
cmp r14, r12
seta cl
or al, cl
test al, 1
jne 0x18025c41d
mov eax, dword [0x1805203d8]
xor eax, dword [0x1805203dc]
mov ecx, 0xf75660ae
xor edx, edx
div ecx
mov ecx, 0x4069d60c
xor edx, edx
div ecx
add eax, 0x2a261e5c
cmp eax, 0xe9cfa0df
je 0x18025c4e6
jmp 0x18025c0d1
mov eax, dword [0x1805203e0]
add eax, dword [0x1805203e4]
or eax, 0x82de25f4
mov ecx, 0xf7ebb568
xor edx, edx
div ecx
add eax, 0x40c271ee
mov r15, rbx
add r15, 0x30
cmp eax, 0x9e1d4bde
ja 0x18025c0d1
jmp 0x18025c100
mov al, byte [rbx + 0x38]
movzx r11d, al
mov rcx, r11
add rcx, 0xffffffffffffffff
mov cl, byte [r15 + rcx]
cmp al, 4
ja 0x18025c120
mov qword [rsp + 0x38], r12
jmp 0x18025c22e
jmp 0x18025c122
mov r8, r14
sub r8, rdi
mov rdx, r10
add rdx, rdi
cmp r8, 0x10
jb 0x18025c1c8
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x28], r10
mov r15b, cl
call fcn.18044a780
mov r9, rdx
cmp rax, 1
sete dl
test dl, 1
mov r10, qword [rsp + 0x28]
mov r11, qword [rsp + 0x40]
mov cl, r15b
jne 0x18025c16b
jmp 0x18025c409
mov eax, dword [0x1805203e8]
or eax, dword [0x1805203ec]
mov r8d, 0x7e81e8c4
xor edx, edx
div r8d
sub eax, 0x2c69eb9b
or eax, 0xe43c513e
cmp eax, 0x93af5f3f
jbe 0x18025c4f7
mov eax, dword [0x1805203f0]
imul eax, dword [0x1805203f4]
xor eax, 0x7112109c
and eax, 0xc2f4f708
mov r8d, 0xd06f0d77
xor edx, edx
div r8d
cmp eax, 0xb5dca61f
ja 0x18025c4f7
jmp 0x18025c1c6
jmp 0x18025c1f9
cmp r14, rdi
sete al
test al, 1
jne 0x18025c3fd
jmp 0x18025c1d8
xor r9d, r9d
jmp 0x18025c1dd
cmp byte [rdx + r9], cl
je 0x18025c1f7
add r9, 1
cmp r9, r8
sete al
test al, 1
jne 0x18025c3fb
jmp 0x18025c1dd
jmp 0x18025c1f9
add rdi, 1
add rdi, r9
mov qword [rbp], rdi
cmp rdi, r11
setb al
cmp rdi, r12
seta dl
or al, dl
test al, 1
jne 0x18025c21b
jmp 0x18025c3f7
cmp r14, rdi
setb al
test al, 1
jne 0x18025c419
jmp 0x18025c122
mov r8, r14
sub r8, rdi
mov rdx, r10
add rdx, rdi
cmp r8, 0x10
jae 0x18025c2e4
cmp r14, rdi
sete al
test al, 1
jne 0x18025c401
jmp 0x18025c254
xor r9d, r9d
jmp 0x18025c259
cmp byte [rdx + r9], cl
je 0x18025c324
mov byte [rsp + 0x27], cl
mov eax, dword [0x1805203f8]
or eax, dword [0x1805203fc]
add eax, 0xe1e21aea
and eax, 0xbbdfb199
xor eax, 0x286be96a
cmp eax, 0xc2460c50
je 0x18025c504
mov rcx, r9
jmp 0x18025c292
mov r9d, dword [0x180520400]
xor r9d, dword [0x180520404]
or r9d, 0xe3643291
add r9d, 0x9f1af481
add r9d, 0xabaf0bbe
mov rax, rcx
add rax, 1
cmp r9d, 0x72680f9e
je 0x18025c292
jmp 0x18025c2c7
cmp rax, r8
sete r9b
mov cl, byte [rsp + 0x27]
test r9b, 1
mov r9, rax
jne 0x18025c3ff
jmp 0x18025c259
mov qword [rsp + 0x30], rsi
mov rsi, r11
mov qword [rsp + 0x28], r10
mov r12b, cl
call fcn.18044a780
mov r9, rdx
cmp rax, 1
sete dl
mov r11, rsi
test dl, 1
mov r10, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
mov cl, r12b
jne 0x18025c31d
jmp 0x18025c40b
mov r12, qword [rsp + 0x38]
jmp 0x18025c326
jmp 0x18025c326
add rdi, 1
add rdi, r9
mov qword [rbp], rdi
cmp rdi, r11
setb al
cmp rdi, r12
seta dl
or al, dl
test al, 1
jne 0x18025c345
jmp 0x18025c3b4
mov eax, dword [0x180520408]
add eax, dword [0x18052040c]
mov r8d, 0xe3d438f7
xor edx, edx
div r8d
and eax, 0x3b8dd3f
and eax, 0x3c068f0b
cmp eax, 0xbd51c94
je 0x18025c515
mov eax, dword [0x180520410]
and eax, dword [0x180520414]
sub eax, 0x88d96b2
and eax, 0x76a78a93
mov r8d, 0x2dccdbe5
xor edx, edx
div r8d
cmp r14, rdi
setb dl
cmp eax, 0x1993a9dd
jae 0x18025c515
jmp 0x18025c3a5
test dl, 1
mov r12, qword [rsp + 0x38]
jne 0x18025c41b
jmp 0x18025c22e
mov byte [rsp + 0x27], cl
mov qword [rsp + 0x30], rsi
mov r12, rdi
sub r12, r11
mov qword [rsp + 0x28], r10
add r10, r12
mov rcx, r10
mov rdx, r15
mov rsi, r11
mov r8, r11
call fcn.180469550
cmp eax, 0
mov r10, qword [rsp + 0x28]
mov r11, rsi
mov rsi, qword [rsp + 0x30]
mov cl, byte [rsp + 0x27]
je 0x18025c44b
jmp 0x18025c345
ud2
jmp 0x18025c403
jmp 0x18025c403
jmp 0x18025c403
jmp 0x18025c403
mov qword [rbp], r14
jmp 0x18025c41d
jmp 0x18025c40d
jmp 0x18025c40d
mov qword [rbp], r14
cmp rax, 0
je 0x18025c41d
jmp 0x18025c44d
jmp 0x18025c41d
jmp 0x18025c41d
mov byte [r13], 1
mov rax, rbx
add rax, 0x40
cmp byte [rax], 0
sete cl
mov rax, qword [rbx]
mov r12, qword [rbx + 8]
mov rdx, r12
sub rdx, rax
sete dl
and cl, dl
test cl, 1
jne 0x18025c458
sub r12, rax
jmp 0x18025c467
jmp 0x18025c44d
mov rax, qword [rbx]
sub r12, rax
mov qword [rbx], rdi
jmp 0x18025c467
movabs rax, 0x8000000000000000
mov qword [rsi], rax
jmp 0x18025c4d5
add r10, rax
xor ecx, ecx
cmp r12, 0
jl 0x18025c4b4
cmp r12, 0
sete al
mov ebx, 1
test al, 1
jne 0x18025c4bc
jmp 0x18025c484
mov rdi, r10
mov al, byte [0x1805297c8]
mov rcx, r12
mov edx, 1
call fcn.1802cbf10
mov rbx, rax
cmp rbx, 0
sete al
mov ecx, 1
test al, 1
mov r10, rdi
jne 0x18025c4b4
jmp 0x18025c4b2
jmp 0x18025c4bc
mov rdx, r12
call fcn.180407090
mov rcx, rbx
mov rdx, r10
mov r8, r12
call fcn.180468b10
mov qword [rsi], r12
mov qword [rsi + 8], rbx
mov qword [rsi + 0x10], r12
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
push rcx
pop rdi
push 0x229c127e
mov cl, 0x91
adc qword [r8 - 0x42717], r11
call rcx
popfq
fcmove st(0), st(6)
mov gs, word [rsi - 0x6c1640af]
cld
invalid
rcr dword [rbp - 0x51713126], 1
push rcx
mov edi, 0xfffc93e9
invalid
inc dword [rdx + rdx*2]
add al, 0x52
jne 0x18025c574
test byte [rcx - 0x1a], dl
je 0x18025c4c5
loope 0x18025c503
jl 0x18025c4fa
jmp 0x18025c28d
js 0x18025c510
invalid
clc
invalid
sub byte [rcx - 0x7d], cl
invalid