Function at 0x140077ea0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push rbx
sub rsp, 0x178
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x98], rcx
mov eax, 0x10
call fcn.140271bb0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x90], rax
mov rax, qword [0x14028d330]
mov ecx, dword [rax]
sub rsp, 0x20
call fcn.14000efc9
mov rcx, qword [rbp + 0x98]
add rsp, 0x20
add rax, 0x60
mov qword [rbp + 0xa0], rax
mov qword [rbp + 0xe8], 0
lea rax, [rbp + 0xe8]
add rax, 8
mov qword [rbp + 0xa8], rax
mov qword [rbp + 0xf0], 0
mov rcx, qword [rcx]
mov rax, rcx
shl rax, 1
mov qword [rbp + 0xb0], rax
cvtsi2sd xmm0, rcx
movsd xmm1, qword [0x140284de0]
mulsd xmm0, xmm1
movsd qword [rbp + 0xb8], xmm0
cvtsi2sd xmm1, rax
movsd qword [rbp + 0xc0], xmm1
ucomisd xmm0, xmm1
jne 0x140077f6d
jp 0x140077f6d
jmp 0x140077fde
movsd xmm1, qword [rbp + 0xb8]
movsd xmm0, qword [rbp + 0xc0]
subsd xmm0, xmm1
sub rsp, 0x20
call fcn.140271c60
add rsp, 0x20
movaps xmm1, xmm0
movsd xmm0, qword [rbp + 0xb8]
movsd qword [rbp + 0x88], xmm1
sub rsp, 0x20
call fcn.140271c60
movsd xmm1, qword [rbp + 0x88]
add rsp, 0x20
movsd xmm2, qword [0x140284de8]
mulsd xmm1, xmm2
ucomisd xmm0, xmm1
jae 0x140077fde
sub rsp, 0x20
call fcn.14000f24b
add rsp, 0x20
jmp 0x140078b53
mov rax, qword [rbp + 0xb0]
movabs rcx, 0x2f7fd6cbc66f45f9
movabs rdx, 0x2f7fd6cbc66f45f9
xor rcx, rdx
cmp rax, rcx
jge 0x14007804c
mov rcx, qword [rbp + 0xb0]
movabs rdx, 0xac7dbd5ac0b026d6
movabs rax, 0xac7dbd5ac0b026d6
xor rdx, rax
movabs r8, 0x98f65a5d2efba772
movabs rax, 0xe709a5a2d104588d
xor r8, rax
sub rsp, 0x20
call fcn.14001a720
add rsp, 0x20
jmp 0x140078b53
mov rdx, qword [rbp + 0xb0]
lea rcx, [rbp + 0xe8]
sub rsp, 0x20
call fcn.14003a6d6
mov r9, qword [rbp + 0x98]
mov rcx, qword [rbp + 0xa8]
mov rax, qword [rbp + 0x90]
add rsp, 0x20
mov r8, qword [r9]
mov qword [rbp + 0x60], r8
mov rdx, r9
add rdx, 8
mov qword [rbp + 0x68], rdx
mov rdx, qword [r9 + 8]
mov r10, qword [rbp + 0xe8]
mov qword [r9], r10
mov r10, qword [rbp + 0xf0]
mov qword [r9 + 8], r10
mov qword [rbp + 0xe8], r8
mov qword [rcx], rdx
add rax, 8
mov qword [rbp + 0x70], rax
lea rax, [rbp + 0xd8]
add rax, 8
mov qword [rbp + 0x78], rax
xor eax, eax
mov qword [rbp + 0x80], rax
mov rax, qword [rbp + 0x80]
mov qword [rbp + 0x58], rax
mov ecx, dword [0x1402758d0]
mov edx, dword [0x1402758d4]
mov eax, ecx
xor eax, edx
mov r8d, 0x96da8d1a
xor r8d, 0x692572e5
xor eax, r8d
or ecx, edx
and ecx, eax
mov eax, ecx
and eax, 0xe9f0e678
xor eax, 0xffffffff
mov edx, 0x786089b4
xor edx, 0x879f764b
xor ecx, edx
mov edx, 0xffffffff
xor edx, 0xe9f0e678
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
mov ecx, 0x1825ae97
xor edx, edx
div ecx
sub eax, 0x3c0cbdc0
cmp eax, 0xd63256c8
je 0x140078b5f
mov rcx, qword [rbp + 0x58]
mov rdx, qword [rbp + 0x60]
mov r8d, dword [0x1402758d8]
mov eax, dword [0x1402758dc]
xor eax, 0xc68f9d02
xor r8d, 0xffffffff
xor eax, 0xffffffff
mov r9d, 0xffffffff
xor r9d, 0x47297683
or r8d, eax
mov eax, 0x942b1821
xor eax, 0xd3026ea2
or eax, r9d
xor r8d, 0xffffffff
and r8d, eax
mov eax, r8d
and eax, 0xa0913ee4
shl eax, 1
add r8d, 0xa0913ee4
sub r8d, eax
mov r9d, r8d
xor r9d, 0xffffffff
mov eax, 0xe5d894f9
xor eax, 0x643e2dab
and eax, r9d
mov r9d, 0x98ca5ea9
xor r9d, 0x192ce7fb
mov r10d, 0xfa8fa521
xor r10d, 0x5705ade
xor r9d, r10d
and r8d, r9d
or eax, r8d
mov r9d, eax
xor r9d, 0xffffffff
and r9d, 0x4c48d106
mov r10d, 0xffffffff
xor r10d, 0x4c48d106
mov r8d, eax
and r8d, r10d
imul r8d, r9d
mov r9d, eax
and r9d, 0x4c48d106
mov r10d, 0xeaf10c75
xor r10d, 0xa6b9dd73
or eax, r10d
imul eax, r9d
add eax, r8d
cmp rcx, rdx
setl cl
mov byte [rbp + 0x57], cl
cmp eax, 0x3a1b1807
je 0x140078142
mov al, byte [rbp + 0x57]
test al, 1
jne 0x14007823d
jmp 0x140078b23
mov rcx, qword [rbp + 0x58]
test rcx, rcx
setns al
mov rdx, qword [rbp + 0xe8]
mov qword [rbp + 0x48], rdx
sub rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x14007839e
mov eax, dword [0x1402758e0]
xor eax, 0xcc89acd6
mov ecx, dword [0x1402758e4]
sub eax, 0x247488b7
sub eax, ecx
add eax, 0x247488b7
mov ecx, 0x5ce1c383
xor edx, edx
div ecx
mov ecx, eax
add ecx, 1
mov edx, 0x13d845ac
xor edx, 0xec27ba53
xor eax, edx
or eax, 0x9be05265
add eax, ecx
mov ecx, 0xb569d2fd
xor ecx, 0x8b2f5d3a
xor eax, ecx
cmp eax, 0xdc986095
je 0x140078b68
mov rcx, qword [rbp + 0x58]
mov rdx, qword [rbp + 0x48]
mov eax, dword [0x1402758e8]
mov r10d, dword [0x1402758ec]
mov r8d, 0xc7b0f470
xor r8d, 0x384f0b8f
mov r9d, r10d
xor r9d, r8d
mov r8d, eax
and r8d, r9d
mov r9d, eax
xor r9d, r10d
add eax, r9d
sub eax, r8d
add eax, 0xcc92898a
mov r8d, 0x26760e73
xor r8d, 0x721e0902
sub eax, r8d
mov r8d, 0x9de83fea
xor r8d, 0x517ab660
sub eax, r8d
xor r8d, r8d
sub r8d, eax
xor eax, eax
sub eax, 0xa4b7ffb7
add r8d, eax
xor eax, eax
sub eax, r8d
xor eax, 0xffffffff
mov r9d, 0xffffffff
xor r9d, 0x2a5f3cc6
mov r8d, 0xe40f85ef
xor r8d, 0x262911e7
mov r10d, 0x60e909c3
xor r10d, 0x9f16f63c
xor r8d, r10d
or eax, r9d
or r8d, 0xc2269408
xor eax, 0xffffffff
and eax, r8d
mov dword [rbp + 0x44], eax
mov eax, 0x91d6b839
xor eax, 0x5817ef27
mov dword [rbp + 0x40], eax
add rdx, 0xffffffffffffffff
sub rsp, 0x20
call fcn.1400292ad
mov ecx, dword [rbp + 0x40]
mov eax, dword [rbp + 0x44]
add rsp, 0x20
cmp eax, ecx
jae 0x1400782b9
jmp 0x140078b53
mov rax, qword [rbp + 0xa0]
mov rdx, qword [rbp + 0x58]
mov rcx, qword [rbp + 0xa8]
mov rcx, qword [rcx]
mov qword [rbp + 0x28], rcx
lea rdx, [rdx + rdx*4]
mov rcx, qword [rcx + rdx*8 + 8]
mov qword [rbp + 0x30], rcx
test rcx, rcx
sete cl
mov al, byte [rax]
test al, al
setne al
mov byte [rbp + 0x3f], al
or al, cl
test al, 1
jne 0x1400787cf
mov rcx, qword [rbp + 0x30]
mov rax, qword [rbp + 0x98]
mov r8, qword [rax]
mov qword [rbp + 8], r8
mov rax, r8
dec rax
mov qword [rbp + 0x10], rax
mov rax, r8
neg rax
not rcx
or rax, rcx
xor rax, 0xffffffffffffffff
mov qword [rbp + 0x18], rax
setns cl
mov rdx, rax
sub rdx, r8
setl dl
and cl, dl
test cl, 1
mov qword [rbp + 0x20], rax
jne 0x14007842e
jmp 0x140078446
mov rax, qword [rbp + 0x18]
mov rcx, qword [rbp + 0x68]
mov rcx, qword [rcx]
mov qword [rbp - 8], rcx
mov qword [rbp], rax
jmp 0x140078460
mov rdx, qword [rbp + 0x10]
mov rcx, qword [rbp + 0x20]
sub rsp, 0x20
call fcn.1400292ad
add rsp, 0x20
jmp 0x140078b53
mov rax, qword [rbp - 8]
mov rcx, qword [rbp]
mov qword [rbp - 0x10], rcx
add rax, 8
imul rcx, rcx, 0x28
add rax, rcx
cmp qword [rax], 0
je 0x140078555
mov eax, dword [0x1402758f0]
mov r8d, dword [0x1402758f4]
mov r9d, r8d
xor r9d, 0xffffffff
mov edx, eax
and edx, r9d
mov ecx, eax
or ecx, r9d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, 0x99c53c14
add ecx, eax
xor eax, eax
sub eax, ecx
add eax, 0xd4693c68
mov ecx, 0x54a90d39
xor ecx, 0x1588da69
sub eax, ecx
cmp eax, 0x991cccb
je 0x140078b71
mov r8, qword [rbp + 8]
mov rdx, qword [rbp + 0x10]
mov r9, qword [rbp - 0x10]
mov eax, dword [0x1402758f8]
mov ecx, dword [0x1402758fc]
imul eax, ecx
or eax, 0xfe9e36f7
imul eax, eax, 0x6c524890
inc r9
mov rcx, rdx
not rcx
or rcx, r9
add rdx, rcx
inc rdx
mov qword [rbp - 0x20], rdx
setns cl
sub rdx, r8
setl dl
and cl, dl
mov byte [rbp - 0x11], cl
cmp eax, 0x512ceae0
jbe 0x1400784e0
mov rax, qword [rbp - 0x20]
mov cl, byte [rbp - 0x11]
test cl, 1
mov rcx, rax
mov qword [rbp + 0x20], rcx
mov qword [rbp], rax
jne 0x140078460
jmp 0x140078446
mov rax, qword [rbp + 0x58]
mov rcx, qword [rbp + 0x28]
add rcx, 8
imul rax, rax, 0x28
add rcx, rax
add rcx, 8
mov rax, qword [rcx]
mov qword [rbp - 0x38], rax
mov rax, qword [rcx + 8]
mov qword [rbp - 0x30], rax
sub rsp, 0x20
call fcn.140020530
mov rax, qword [rbp + 0x58]
add rsp, 0x20
mov rcx, qword [rbp + 0xe8]
mov qword [rbp - 0x28], rcx
cmp rax, rcx
jl 0x1400786d5
mov eax, dword [0x140275900]
mov ecx, 0x1e690c05
xor ecx, 0x78666ac4
xor eax, ecx
xor edx, edx
div dword [str.OS_o]
xor eax, 0x260d9670
mov ecx, 0x35403342
xor ecx, 0xabbc5193
or eax, ecx
sub eax, 0x6c93cf73
mov ecx, 0x88b4b79b
xor ecx, 0x122aeb15
add eax, ecx
add eax, 0x6c93cf73
mov ecx, 0x6876c70e
xor ecx, 0xfb1f1f12
cmp eax, ecx
jae 0x140078b7a
mov rcx, qword [rbp + 0x58]
mov eax, dword [0x140275908]
mov edx, 0xeea7c678
xor edx, 0x9f84a116
xor eax, edx
mov r8d, dword [0x14027590c]
xor r8d, 0x96528728
xor edx, edx
div r8d
mov rdx, qword [rbp - 0x28]
mov r8d, eax
xor r8d, 0xffffffff
mov r9d, 0x1b0a5391
xor r9d, 0x3f1ab3c2
and r8d, r9d
mov r9d, 0xffffffff
xor r9d, 0x2410e053
and eax, r9d
sub eax, r8d
or eax, eax
xor eax, 0xffffffff
mov r8d, 0x923a91c0
or r8d, 0x923a91c0
mov r9d, 0x94a72656
xor r9d, 0x6b58d9a9
xor r8d, r9d
or eax, r8d
mov r8d, 0xc4362f35
xor r8d, 0x3bc9d0ca
xor eax, r8d
xor eax, 0xccb326aa
mov dword [rbp - 0x3c], eax
mov rax, rdx
and rax, 0xffffffffffffffff
movabs r8, 0x8f498cd428d354a8
movabs r9, 0x8f498cd428d354aa
xor r8, r9
imul rax, r8
xor rdx, 0xffffffffffffffff
add rdx, rax
sub rsp, 0x20
call fcn.1400292ad
mov eax, dword [rbp - 0x3c]
add rsp, 0x20
cmp eax, 0xd9e5be54
jae 0x140078b7a
jmp 0x140078b53
mov rsi, qword [rbp + 0x70]
mov rdi, qword [rbp - 0x30]
mov rbx, qword [rbp - 0x38]
mov rax, qword [rbp + 0x58]
mov rcx, qword [rbp + 0xa8]
mov rcx, qword [rcx]
add rcx, 8
imul rax, rax, 0x28
add rcx, rax
add rcx, 0x18
mov rax, qword [rcx]
mov qword [rbp - 0x50], rax
mov rax, qword [rcx + 8]
mov qword [rbp - 0x48], rax
sub rsp, 0x20
call fcn.140020530
mov r11, qword [rbp - 0x50]
mov r9, qword [rbp - 0x48]
mov rcx, qword [rbp + 0x78]
mov rdx, qword [rbp + 0x98]
mov r8, qword [rbp + 0x90]
mov r10, qword [rbp + 0x30]
mov rax, qword [rbp - 0x10]
add rsp, 0x20
mov qword [r8], rbx
mov qword [rsi], rdi
mov qword [rbp + 0xd8], r11
mov qword [rcx], r9
lea r9, [rbp + 0xd8]
sub rsp, 0x30
mov qword [rsp + 0x20], r10
mov qword [rsp + 0x28], rax
call fcn.140077af0
mov rax, qword [rbp + 0xa0]
add rsp, 0x30
cmp byte [rax], 0
jne 0x140078b53
mov rax, qword [rbp - 0x30]
cmp rax, 0
je 0x14007886b
mov rcx, qword [rbp - 0x30]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
movabs rcx, 0x90f5949cc9e87a6c
movabs rdx, 0x90f5949cc9e87a6c
xor rcx, rdx
cmp rax, rcx
jne 0x14007886b
mov rcx, qword [rbp - 0x30]
sub rsp, 0x20
call fcn.14001d1d6
add rsp, 0x20
jmp 0x14007886b
mov eax, dword [0x140275910]
add eax, dword [0x140275914]
imul eax, eax, 0x70d81a9e
mov ecx, 0xfbf0398d
xor edx, edx
div ecx
mov ecx, 0xfdaeac08
xor edx, edx
div ecx
cmp eax, 0xb4061b45
ja 0x140078b83
mov eax, dword [0x140275918]
mov ecx, 0x9917d3b9
xor ecx, 0x9658c89e
xor eax, ecx
add eax, dword [0x14027591c]
mov ecx, 0xb02e4dfb
xor ecx, 0x7967c5a
mov edx, 0xe5fc4a68
xor edx, 0x1a03b597
xor ecx, edx
add eax, ecx
add eax, 1
mov ecx, 0xc5e6df52
xor edx, edx
div ecx
sub eax, 0xbd11ae33
cmp eax, 0xbe46d2c0
jae 0x140078b83
mov rcx, qword [rbp + 0x58]
mov dl, byte [rbp + 0x3f]
xor eax, eax
test dl, 1
mov qword [rbp - 0x60], rcx
mov byte [rbp - 0x51], al
jne 0x140078a29
jmp 0x14007886b
mov r8, qword [rbp + 0x58]
mov rcx, r8
add rcx, 1
movabs rax, 0x1cacf2f8ed1090e1
movabs rdx, 0xe3530d0712ef6f1e
xor rax, rdx
xor r8, rax
mov rax, rcx
add rax, 1
mov rdx, rcx
xor rdx, 0xffffffffffffffff
or rdx, r8
add rdx, rax
mov al, 1
cmp rdx, 0
mov qword [rbp - 0x60], rcx
mov byte [rbp - 0x51], al
jge 0x140078a29
mov r8d, dword [0x140275920]
mov ecx, dword [0x140275924]
xor ecx, 0xa739b326
mov eax, r8d
xor eax, ecx
mov edx, 0x7d96d5fc
xor edx, 0x82692a03
xor eax, edx
or r8d, ecx
and r8d, eax
mov eax, 0xffffffff
xor eax, 0x84c3ec45
add r8d, eax
add r8d, 1
mov eax, r8d
xor eax, 0xffffffff
and eax, 0x79538343
mov edx, 0x6bf8f387
xor edx, 0x12ab70c4
mov ecx, 0x57785efc
xor ecx, 0xa887a103
xor edx, ecx
and r8d, edx
mov ecx, 0xffffffff
xor ecx, 0x38d25e22
and ecx, 0x79538343
and edx, 0x38d25e22
or eax, r8d
or ecx, edx
xor eax, ecx
and eax, 0x9b9c5585
cmp eax, 0x5774aa33
jbe 0x140078b8c
mov eax, dword [0x140275928]
mov ecx, dword [0x14027592c]
add eax, 0x18a0009c
sub eax, ecx
mov ecx, 0x3a8e9e11
xor ecx, 0x222e9e8d
sub eax, ecx
mov ecx, 0xb67d7209
xor ecx, 0xa5412b0f
and eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
mov edx, eax
xor edx, 0xffffffff
or ecx, edx
xor ecx, 0xffffffff
mov edx, 0x24a3a848
xor edx, 0xc675ea61
mov r8d, 0x4b8ff522
xor r8d, 0xb4700add
xor edx, r8d
or ecx, edx
mov edx, 0xffffffff
xor edx, 0xe2d64229
mov r8d, 0xffffffff
xor r8d, 0xe2d64229
or edx, r8d
mov r8d, 0xd8c01cfd
xor r8d, 0x273fe302
xor eax, r8d
xor edx, 0xffffffff
or eax, edx
and ecx, eax
xor ecx, 0xffffffff
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0x2e8a030b
or ecx, 0x2e8a030b
mov edx, 0xa51a1938
xor edx, 0x5ae5e6c7
xor ecx, edx
or eax, ecx
mov ecx, 0x32332ee6
xor ecx, 0xcdccd119
xor eax, ecx
mov dword [rbp - 0x64], eax
sub rsp, 0x20
call fcn.14000f24b
mov eax, dword [rbp - 0x64]
add rsp, 0x20
cmp eax, 0x6d87cf4d
je 0x140078b8c
jmp 0x140078b53
mov rax, qword [rbp - 0x60]
mov cl, byte [rbp - 0x51]
mov byte [rbp - 0x71], cl
mov qword [rbp - 0x70], rax
mov eax, dword [0x140275930]
sub eax, dword [0x140275934]
mov edx, eax
xor edx, 0xffffffff
and edx, 0xc7a0a2d9
mov r8d, 0x16178fcc
xor r8d, 0xd1b72d15
mov ecx, 0xb44763aa
xor ecx, 0x4bb89c55
xor r8d, ecx
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0xc7a0a2d9
mov r8d, 0x9aca9e74
xor r8d, 0x5d6a3cad
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0x63e0379c
xor ecx, 0x3cae0e16
sub eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 0xcf5d1eee
mov edx, 0x666de678
xor edx, 0xa930f896
mov r8d, 0xfc455d26
xor r8d, 0x3baa2d9
xor edx, r8d
and eax, edx
sub eax, ecx
cmp eax, 0xaac3f838
je 0x140078b95
mov eax, dword [0x140275938]
mov ecx, dword [0x14027593c]
xor ecx, 0x2d85a586
xor eax, ecx
mov ecx, 0x4a9c06a6
xor edx, edx
div ecx
mov ecx, 0xc49b4054
xor edx, edx
div ecx
imul eax, eax, 0xd691f37f
cmp eax, 0x1586d58b
ja 0x140078ad0
mov rax, qword [rbp - 0x70]
mov cl, byte [rbp - 0x71]
test cl, 1
mov qword [rbp + 0x80], rax
jne 0x1400780d1
jmp 0x140078b53
mov rax, qword [rbp + 0xe8]
mov qword [rbp + 0xc8], rax
mov rax, qword [rbp + 0xf0]
mov qword [rbp + 0xd0], rax
lea rcx, [rbp + 0xc8]
sub rsp, 0x20
call fcn.140076060
add rsp, 0x20
add byte [rax - 0x75], cl
test eax, esi
add byte [rax], al
add byte [rax - 0x77], cl
test eax, edx
add byte [rax], al
add byte [rax - 0x73], cl
invalid
lea rsp, [rbp + 0xf8]
pop rbx
pop rdi
pop rsi
pop rbp
ret
cdq
cmp eax, 0xdae99527
cmc
invalid
pop rsi
adc byte [rbp - 0x8b71615], ch
invalid
invalid
ret
invalid
or eax, 0xe9aff1f5
mov dl, 0xfd
invalid
jbe 0x140078b30
invalid