Function at 0x1400e5220
Capabilities:
Encode data using xor

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x70
mov rax, qword [0x140215080]
xor rax, rsp
mov qword [rbp - 0x20], rax
mov qword [rsp + 0x88], rsi
xor esi, esi
cmp byte [0x1402973ae], sil
movaps xmmword [rsp + 0x60], xmm6
xorps xmm6, xmm6
je 0x1400e528c
mov rcx, qword [0x140293490]
lea r8d, [rsi + 8]
add rcx, 0x598
mov qword [rbp - 0x28], rsi
lea rdx, [rbp - 0x28]
call fcn.14009abc0
mov rcx, qword [rbp - 0x28]
lea r8d, [rsi + 4]
add rcx, 0xbc
mov dword [rbp - 0x48], esi
lea rdx, [rbp - 0x48]
call fcn.14009ac80
cmp byte [0x14029356d], sil
je 0x1400e530d
mov rcx, qword [0x140293490]
lea rdx, [rbp - 0x48]
add rcx, 0x530
mov qword [rbp - 0x48], rsi
mov r8d, 8
call fcn.14009abc0
mov rcx, qword [rbp - 0x48]
lea rdx, [rbp - 0x28]
add rcx, 0x60
mov qword [rbp - 0x28], rsi
mov r8d, 8
call fcn.14009abc0
mov rcx, qword [rbp - 0x28]
lea rdx, [rbp - 0x30]
add rcx, 0x168
mov qword [rbp - 0x30], rsi
mov r8d, 8
call fcn.14009abc0
mov rcx, qword [rbp - 0x30]
lea rdx, [rbp - 0x48]
add rcx, 0x30
mov dword [rbp - 0x48], 0x42200000
mov r8d, 4
call fcn.14009ac80
cmp byte [0x1402935fb], sil
je 0x1400e538b
mov rcx, qword [0x140293490]
lea rdx, [rbp - 0x30]
add rcx, 0x530
mov qword [rbp - 0x30], rsi
mov r8d, 8
call fcn.14009abc0
mov rcx, qword [rbp - 0x30]
lea rdx, [rbp - 0x48]
add rcx, 0x60
mov qword [rbp - 0x48], rsi
mov r8d, 8
call fcn.14009abc0
mov rcx, qword [rbp - 0x48]
lea rdx, [rbp - 0x28]
add rcx, 0x4c0
mov qword [rbp - 0x28], rsi
mov r8d, 8
call fcn.14009abc0
mov rcx, qword [rbp - 0x28]
lea rdx, [rbp - 0x50]
add rcx, 0x30
mov byte [rbp - 0x50], 1
mov r8d, 1
call fcn.14009ac80
cmp byte [0x14029356e], sil
mov qword [rsp + 0x80], rbx
je 0x1400e5450
mov rcx, qword [0x140293490]
lea rdx, [rbp - 0x30]
add rcx, 0x530
mov qword [rbp - 0x30], rsi
mov r8d, 8
call fcn.14009abc0
mov rcx, qword [rbp - 0x30]
lea rdx, [rbp - 0x48]
add rcx, 0x60
mov qword [rbp - 0x48], rsi
mov r8d, 8
call fcn.14009abc0
mov rbx, qword [rbp - 0x48]
lea rdx, [rbp - 0x28]
mov r8d, 8
mov qword [rbp - 0x28], rsi
lea rcx, [rbx + 0x180]
call fcn.14009abc0
lea rcx, [rbx + 0x188]
mov qword [rbp - 0x40], rsi
mov r8d, 8
lea rdx, [rbp - 0x40]
call fcn.14009abc0
mov rcx, qword [rbp - 0x28]
lea rdx, [rbp - 0x48]
add rcx, 0x30
mov dword [rbp - 0x48], 0x42aa0000
mov r8d, 4
call fcn.14009ac80
mov rcx, qword [rbp - 0x40]
lea rdx, [rbp - 0x48]
add rcx, 0x30
mov dword [rbp - 0x48], 0x42aa0000
mov r8d, 4
call fcn.14009ac80
movzx eax, byte [0x1402973ac]
cmp al, 1
jne 0x1400e54aa
mov dword [rbp - 0x40], 0x626e6149
mov rcx, rsi
mov dword [rbp - 0x3c], 0x7d645a7f
mov dword [rbp - 0x38], 0x7f7f66
mov byte [rbp - 0x34], al
nop word [rax + rax]
lea eax, [rcx + 7]
xor byte [rbp + rcx - 0x40], al
inc rcx
cmp rcx, 0xb
jb 0x1400e5480
mov rcx, qword [0x140293480]
lea rdx, [rbp - 0x40]
mov byte [rbp - 0x34], sil
call fcn.1400e2930
mov byte [rbp - 0x50], 1
jmp 0x1400e54f8
test al, al
jne 0x1400e5543
mov dword [rbp - 0x40], 0x626e6149
mov rcx, rsi
mov dword [rbp - 0x3c], 0x7d645a7f
mov dword [rbp - 0x38], 0x7f7f66
mov byte [rbp - 0x34], 1
nop
lea eax, [rcx + 7]
xor byte [rbp + rcx - 0x40], al
inc rcx
cmp rcx, 0xb
jb 0x1400e54d0
mov rcx, qword [0x140293480]
lea rdx, [rbp - 0x40]
mov byte [rbp - 0x34], sil
call fcn.1400e2930
mov byte [rbp - 0x50], sil
mov r8d, 1
lea rdx, [rbp - 0x50]
lea rcx, [rax + 0xec]
mov rbx, rax
call fcn.14009ac80
mov r8d, 4
mov dword [rbp - 0x48], esi
lea rdx, [rbp - 0x48]
lea rcx, [rbx + 0xc0]
call fcn.14009ac80
mov r8d, 4
mov dword [rbp - 0x48], esi
lea rdx, [rbp - 0x48]
lea rcx, [rbx + 0xc8]
call fcn.14009ac80
movzx eax, byte [0x1402935ff]
cmp al, 1
jne 0x1400e5567
mov rcx, qword [0x140293480]
lea rdx, str.ThermalVision
call fcn.1400e2930
mov byte [rbp - 0x50], 1
jmp 0x1400e5586
test al, al
jne 0x1400e5621
mov rcx, qword [0x140293480]
lea rdx, str.ThermalVision
call fcn.1400e2930
mov byte [rbp - 0x50], sil
mov r8d, 1
lea rdx, [rbp - 0x50]
lea rcx, [rax + 0xe0]
mov rbx, rax
call fcn.14009ac80
mov r8d, 1
mov byte [rbp - 0x50], sil
lea rdx, [rbp - 0x50]
lea rcx, [rbx + 0xe1]
call fcn.14009ac80
mov r8d, 1
mov byte [rbp - 0x50], sil
lea rdx, [rbp - 0x50]
lea rcx, [rbx + 0xe2]
call fcn.14009ac80
mov r8d, 1
mov byte [rbp - 0x50], sil
lea rdx, [rbp - 0x50]
lea rcx, [rbx + 0xe3]
call fcn.14009ac80
mov r8d, 1
mov byte [rbp - 0x50], sil
lea rdx, [rbp - 0x50]
lea rcx, [rbx + 0xe4]
call fcn.14009ac80
mov r8d, 1
mov byte [rbp - 0x50], sil
lea rdx, [rbp - 0x50]
lea rcx, [rbx + 0xe5]
call fcn.14009ac80
cmp byte [0x1402973a8], sil
je 0x1400e56bc
mov rcx, qword [0x140293490]
lea rdx, [rbp - 0x40]
add rcx, 0x598
mov qword [rbp - 0x40], rsi
mov r8d, 8
call fcn.14009abc0
mov rbx, qword [rbp - 0x40]
lea rdx, [rbp - 0x30]
mov r8d, 8
mov qword [rbp - 0x30], rsi
lea rcx, [rbx + 0xa8]
call fcn.14009abc0
lea rcx, [rbx + 0x38]
mov qword [rbp - 0x28], rsi
mov r8d, 8
lea rdx, [rbp - 0x28]
call fcn.14009abc0
mov rcx, qword [rbp - 0x30]
lea rdx, [rbp - 0x48]
mov r8d, 4
mov dword [rbp - 0x48], 0x42a00000
call fcn.14009ac80
mov rcx, qword [rbp - 0x28]
lea rdx, [rbp - 0x48]
add rcx, 0x48
mov dword [rbp - 0x48], 0x42c80000
mov r8d, 4
call fcn.14009ac80
cmp byte [0x140298169], sil
je 0x1400e5737
mov rcx, qword [0x140293490]
lea rdx, [rbp - 0x40]
add rcx, 0x1a0
mov qword [rbp - 0x40], rsi
mov r8d, 8
call fcn.14009abc0
mov rbx, qword [rbp - 0x40]
lea rdx, [rbp - 0x30]
mov r8d, 8
mov qword [rbp - 0x30], rsi
lea rcx, [rbx + 0x28]
call fcn.14009abc0
mov rcx, qword [rbp - 0x30]
lea rdx, [rbp - 0x48]
add rcx, 0xac
mov dword [rbp - 0x48], esi
mov r8d, 4
call fcn.14009ac80
lea rcx, [rbx + 0x138]
mov dword [rbp - 0x48], esi
mov r8d, 4
lea rdx, [rbp - 0x48]
call fcn.14009ac80
cmp byte [0x1402935fe], sil
je 0x1400e580c
mov rcx, qword [0x140293490]
lea rdx, [rbp - 0x40]
add rcx, 0x1a0
mov qword [rsp + 0x90], rdi
mov r8d, 8
mov qword [rbp - 0x40], rsi
call fcn.14009abc0
mov rbx, qword [rbp - 0x40]
lea rdx, [rbp - 0x30]
mov r8d, 8
mov qword [rbp - 0x30], rsi
lea rcx, [rbx + 0x28]
call fcn.14009abc0
mov rdi, qword [rbp - 0x30]
lea rdx, [rbp - 0x28]
mov r8d, 4
mov dword [rbp - 0x28], esi
lea rcx, [rdi + 0xac]
call fcn.14009abc0
lea rcx, [rbx + 0x130]
mov dword [rbp - 0x48], esi
mov r8d, 4
lea rdx, [rbp - 0x48]
call fcn.14009abc0
movss xmm0, dword [rbp - 0x28]
comiss xmm0, xmm6
ja 0x1400e57d2
movss xmm0, dword [rbp - 0x48]
comiss xmm0, xmm6
jbe 0x1400e5804
mov r8d, 4
mov dword [rbp - 0x48], esi
lea rdx, [rbp - 0x48]
lea rcx, [rdi + 0xac]
call fcn.14009ac80
lea rcx, [rbx + 0x138]
mov dword [rbp - 0x48], esi
mov r8d, 4
lea rdx, [rbp - 0x48]
call fcn.14009ac80
mov rdi, qword [rsp + 0x90]
cmp byte [0x1402935f8], sil
movaps xmm6, xmmword [rsp + 0x60]
mov rbx, qword [rsp + 0x80]
je 0x1400e5884
mov rcx, qword [0x140293490]
lea rdx, [rbp - 0x40]
add rcx, 0x118
mov qword [rbp - 0x40], rsi
mov r8d, 8
call fcn.14009abc0
mov rcx, qword [rbp - 0x40]
lea rdx, [rbp - 0x30]
sub rcx, 0xffffffffffffff80
mov qword [rbp - 0x30], rsi
mov r8d, 8
call fcn.14009abc0
mov rcx, qword [rbp - 0x30]
test rcx, rcx
je 0x1400e5884
add rcx, 0x168
mov dword [rbp - 0x48], 0x40400000
mov r8d, 4
lea rdx, [rbp - 0x48]
call fcn.14009ac80
cmp byte [0x1402973ab], 0
mov rsi, qword [rsp + 0x88]
je 0x1400e58c5
mov rcx, qword [0x140293480]
lea rdx, str.VisorEffect
call fcn.1400e2930
mov r8d, 4
mov dword [rbp - 0x48], 0
lea rdx, [rbp - 0x48]
lea rcx, [rax + 0xc0]
call fcn.14009ac80
mov rcx, qword [rbp - 0x20]
xor rcx, rsp
call fcn.14015e7f0
add rsp, 0x70
pop rbp
ret