Function at 0x180290740
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x1e8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x150], xmm7
movaps xmmword [rbp + 0x140], xmm6
mov r11, rcx
mov eax, dword [0x180524150]
sub eax, dword [0x180524154]
imul eax, eax, 0x43b9aeb0
and eax, 0x10a4d503
or eax, 0x9d2df834
cmp eax, 0x2fdf5e4f
jbe 0x180291d9d
mov r10d, dword [0x180524158]
mov eax, dword [0x18052415c]
or r10d, eax
and r10d, 0x45e9f8cd
add r10d, 0x45b7ec29
mov eax, 0x8ec960eb
imul r10, rax
shr r10, 0x39
mov eax, 0x30
call fcn.18045a590
sub rsp, rax
mov rsi, rsp
mov eax, 0x90
call fcn.18045a590
sub rsp, rax
mov rdi, rsp
mov eax, 0x20
call fcn.18045a590
sub rsp, rax
mov r15, rsp
mov eax, 0x30
call fcn.18045a590
sub rsp, rax
mov r14, rsp
mov eax, 0x90
call fcn.18045a590
sub rsp, rax
mov rbx, rsp
mov eax, 0x80
call fcn.18045a590
sub rsp, rax
mov r12, rsp
cmp r10d, 0xa363a9ad
ja 0x180291d9d
mov qword [rbp + 0xf8], r15
mov qword [rbp + 0xd0], r14
mov qword [rbp + 0xc8], rbx
mov qword [rbp + 0xc0], rsi
jmp 0x180290849
mov eax, 0x30
call fcn.18045a590
sub rsp, rax
mov r14, rsp
mov eax, 0x90
call fcn.18045a590
sub rsp, rax
mov qword [rbp + 0x110], rsp
mov eax, 0x30
call fcn.18045a590
sub rsp, rax
mov r13, rsp
mov eax, 0x90
call fcn.18045a590
sub rsp, rax
mov rsi, rsp
mov eax, 0x30
call fcn.18045a590
sub rsp, rax
mov rbx, rsp
mov eax, 0x20
call fcn.18045a590
sub rsp, rax
mov r15, rsp
mov r10, rdx
add r10, 0xfa
mov al, byte [rdx + 0xfa]
test al, al
je 0x180290916
jmp 0x1802908c3
sub al, 4
jne 0x1802909c5
jmp 0x1802908cd
mov qword [rcx], 4
mov r10b, 1
mov al, 1
mov dil, 1
mov bl, 1
mov sil, 1
jmp 0x1802908e3
mov qword [rbp + 0xb8], rdi
mov qword [rbp + 0x120], r8
mov qword [rbp + 0x118], rdx
mov rdi, r11
mov qword [rbp + 0x138], rcx
mov eax, dword [0x180524160]
xor eax, dword [0x180524164]
mov r11d, 0xdb36259c
xor edx, edx
div r11d
or eax, 0x858ba6b1
xor eax, 0x631f0876
cmp eax, 0xbe6ff708
jbe 0x180291dae
jmp 0x180290963
mov eax, dword [0x180524168]
xor edx, edx
div dword [0x18052416c]
xor eax, 0x5ee9a126
mov r11d, 0xa2af5046
xor edx, edx
div r11d
mov r11d, 0x3c432257
xor edx, edx
div r11d
cmp eax, 0x48085e6f
ja 0x180290963
jmp 0x180290995
movabs rax, 0x8000000000000000
xor rax, qword [r9]
mov r11, rdi
mov rdx, rax
sub rdx, 5
mov edx, 5
cmovb rdx, rax
lea rax, [0x180488518]
movsxd rdx, dword [rax + rdx*4]
add rdx, rax
jmp rdx
mov qword [rcx], 8
mov byte [rcx + 8], 0xd
mov eax, dword [0x180524170]
add eax, dword [0x180524174]
or eax, 0x730b0bd3
imul eax, eax, 0x1dacb524
or eax, 0xa46324a3
cmp eax, 0xf367beaa
ja 0x180291dbb
jmp 0x1802909f9
mov rax, r9
add rax, 8
mov rcx, qword [rax]
mov qword [r15], rcx
mov rcx, qword [rax + 8]
mov qword [r15 + 8], rcx
mov rax, qword [rax + 0x10]
mov qword [r15 + 0x10], rax
mov qword [rbp + 0xf0], r12
mov qword [rbp + 0x100], r9
mov qword [rbp + 0x108], r11
mov eax, dword [0x180524180]
xor edx, edx
div dword [0x180524184]
and eax, 0x6c813697
imul eax, eax, 0x9e6ee94e
imul eax, eax, 0xa09d4290
cmp eax, 0xaa522d8d
ja 0x180291dcc
mov eax, dword [0x180524188]
sub eax, dword [0x18052418c]
or eax, 0x13f5cde1
sub eax, 0x16febf8b
add eax, 0xbf2ad320
cmp eax, 0xcad8d2e9
je 0x180291dcc
movaps xmm6, xmmword [0x180487820]
mov al, 1
mov dword [rbp + 0x128], eax
mov dword [rbp + 0x134], 0
add byte [rax], al
add byte [rax], al
mov eax, dword [0x180524190]
xor eax, dword [0x180524194]
imul eax, eax, 0xb3327606
xor eax, 0x59f3cf2b
sub eax, 0x3182647f
cmp eax, 0xf7ba3df3
je 0x180291ddd
jmp 0x180290b0e
mov ecx, dword [str._dY]
xor ecx, dword [0x18052419c]
and ecx, 0xd81010b
add ecx, 0x7516d0fd
add ecx, 0xaf1f005a
mov rax, r9
add rax, 8
cmp ecx, 0xc6c8d073
ja 0x180290b0e
mov rdx, qword [rbp + 0x110]
jmp 0x180290b44
mov rcx, qword [rax]
mov qword [r15], rcx
mov rcx, qword [rax + 8]
mov qword [r15 + 8], rcx
mov rax, qword [rax + 0x10]
mov qword [r15 + 0x10], rax
mov qword [rbp + 0xf0], r12
mov qword [rbp + 0x100], r9
mov qword [rbp + 0x108], r11
mov eax, dword [0x1805241a0]
sub eax, dword [0x1805241a4]
add eax, 0xfcf7dd7a
xor eax, 0x7ea9cbaf
add eax, 0xaa48c8ab
cmp eax, 0xfed950ed
jae 0x180291dea
mov eax, dword [0x1805241a8]
add eax, dword [0x1805241ac]
sub eax, 0xfc94644f
sub eax, 0xb8434969
sub eax, 0xbb106ad0
cmp eax, 0x8a9a1fd1
jbe 0x180291dea
movaps xmm6, xmmword [0x180487810]
mov al, 1
mov dword [rbp + 0x128], eax
add bh, al
test dword [rax], esi
add dword [rax], eax
add byte [rax], al
add byte [rax], al
add byte [rax + 0x34858901], dh
add dword [rax], eax
add byte [rax + 0x2c858901], dh
add dword [rax], eax
add cl, ch
invalid
invalid
add byte [rax], al
mov rcx, r9
add rcx, 8
mov eax, dword [0x1805241b0]
and eax, dword [0x1805241b4]
xor eax, 0x6f501713
xor eax, 0x79d3bf8f
and eax, 0xeca7c104
cmp eax, 0x647aee3b
ja 0x180291dfb
mov eax, dword [0x1805241b8]
and eax, dword [0x1805241bc]
add eax, 0x14d25f34
xor eax, 0xdc777b48
mov r8d, 0x2765d1eb
xor edx, edx
div r8d
mov rdx, qword [rcx]
mov qword [r15], rdx
mov rdx, qword [rcx + 8]
mov qword [r15 + 8], rdx
mov rdx, qword [rcx + 0x10]
mov qword [r15 + 0x10], rdx
cmp eax, 0x735e9063
je 0x180291dfb
mov qword [rbp + 0xf0], r12
mov qword [rbp + 0x100], r9
mov qword [rbp + 0x108], r11
jmp 0x180290c6f
movaps xmm6, xmmword [0x180487800]
mov al, 1
mov dword [rbp + 0x130], eax
mov dword [rbp + 0x128], 0
add byte [rax], al
add byte [rax], al
mov rax, qword [r9 + 8]
mov qword [rbx], rax
mov rax, qword [r9 + 0x10]
mov qword [rbx + 8], rax
mov rax, qword [r9 + 0x18]
mov qword [rbx + 0x10], rax
mov rax, rbx
add rax, 0x18
mov r15, r9
mov rdi, r11
mov dword [rax], 1
mov byte [rbx + 0x1c], 1
mov byte [rbx + 0x1d], 2
mov rax, rbx
add rax, 0x1f
mov byte [rax], 0
sub rsp, 0x20
mov r14, qword [rbp + 0x118]
mov rcx, r14
mov rdx, rbx
call fcn.1803ee300
add rsp, 0x20
movabs rax, 0x8000000000000000
mov qword [r13], rax
sub rsp, 0x20
mov rcx, rsi
mov rdx, r14
mov r8, qword [rbp + 0x120]
test dword [rax], esp
add dword [rax], eax
add byte [rbp - 0x77], cl
jmp 0x1803b6d08
add byte [rax - 0x7d], cl
invalid
and byte [rax - 0x7d], cl
invalid
invalid
je 0x180291405
jmp 0x18029141b
mov rbx, qword [r9 + 8]
mov r13w, word [r9 + 0x20]
mov dx, word [r9 + 0x22]
mov byte [r10], 1
movabs rax, 0x8000000000000001
cmp rbx, rax
sete al
xor r12d, r12d
mov r14d, 1
test al, 1
mov esi, 0
jne 0x1802910d7
jmp 0x180290d6e
mov rax, r9
add rax, 0x10
mov rdi, qword [rax]
mov r15, qword [r9 + 0x18]
mov r12, r15
add r12, 2
xor ecx, ecx
cmp r12, 0
jl 0x180290de3
cmp r12, 0
sete al
mov r14d, 1
test al, 1
jne 0x180290def
jmp 0x180290d9e
mov qword [rbp + 0xe8], rdi
mov di, dx
mov rsi, r11
mov al, byte [0x1805297c8]
sub rsp, 0x20
mov rcx, r12
mov edx, 1
call fcn.1802cbf10
add rsp, 0x20
mov r14, rax
mov ecx, 1
cmp r14, 0
mov r11, rsi
mov dx, di
mov rdi, qword [rbp + 0xe8]
je 0x180290de3
jmp 0x180290def
sub rsp, 0x20
mov rdx, r12
call fcn.180407090
mov qword [rbp + 0xd8], r15
mov rax, qword [rbp + 0xf8]
mov qword [rax], r12
mov rcx, rax
ror dword [rax - 0x7d], 0xc1
or byte [rax - 0x77], cl
invalid
loopne case.0x18028efd4.16
add byte [rax], al
mov rax, qword [r9]
mov qword [r15], rax
mov rax, qword [r9 + 8]
mov qword [r15 + 8], rax
mov rax, qword [r9 + 0x10]
mov qword [r15 + 0x10], rax
mov qword [rbp + 0xf0], r12
mov qword [rbp + 0x108], r11
movq xmm6, qword [r9 + 0x18]
mov qword [rbp + 0x100], r9
mov rax, r9
add rax, 0x20
mov rdx, qword [rbp + 0x110]
movq xmm7, qword [rax]
mov al, 1
mov dword [rbp + 0x128], eax
mov dword [rbp + 0x12c], 0
mov al, 1
mov dword [rbp + 0x130], eax
mov al, 1
mov dword [rbp + 0x134], eax
jmp 0x180291350
mov rax, qword [rbp + 0x138]
sub rsp, 0x20
mov rcx, qword [rbp + 0x138]
mov rdx, rsi
mov r8d, 0x88
fild dword [rbx - 0x4e720c32]
push rdx
imul edi, dword [rsp + rbp*4], 0xe5e91c4d
jmp 0x1f5b81daf
invalid
jge 0x180291d7f
mov dword [rax + 0x723e7cc4], esi
cmp eax, 0x2be9a373
in al, dx
invalid
add dword [rdx], eax
invalid
invalid
sub ebp, dword [rbp - 0x76a8b78f]
sub ch, byte [rbp - 0x46]
push rbp
imul eax, ecx, 0xffed9ae9
push qword [rcx + 0x6e]
jno 0x180291e6b
xchg dword [rcx - 0x47e2f1a], edx
mov rax, qword [rcx]
mov qword [r15], rax
mov rax, qword [rcx + 8]
mov qword [r15 + 8], rax
mov rax, qword [rcx + 0x10]
mov qword [r15 + 0x10], rax
jmp 0x180290c16
mov dword [rsi + 0x10], eax
movups xmm0, xmmword [r15]