Function at 0x140051530
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x140
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x38], rdx
mov qword [rbp + 0x30], rcx
mov eax, 0x10
call fcn.1401f2390
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x28], rax
sub rsp, 0x20
call fcn.140045cde
mov rcx, qword [rbp + 0x30]
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp + 0x38]
mov qword [rbp + 0x40], rdx
test rcx, rcx
sete dl
test rax, rax
sete r8b
or rax, rcx
sete al
mov cl, dl
add cl, r8b
sub cl, al
xor r8b, 0xff
mov al, dl
xor al, r8b
and al, dl
test cl, 1
mov byte [rbp + 0x4f], al
jne 0x1400520c4
mov rdx, qword [rbp + 0x38]
mov rax, qword [rbp + 0x30]
mov rcx, qword [rax + 0x10]
xor eax, eax
cmp rcx, qword [rdx + 0x10]
mov byte [rbp + 0x4f], al
jne 0x1400520c4
mov rax, qword [rbp + 0x40]
mov rcx, qword [rbp + 0x28]
mov qword [rcx], 0
mov rdx, rcx
add rdx, 8
mov qword [rbp + 0x20], rdx
mov qword [rcx + 8], 0
mov qword [rbp + 0xb8], 0
cmp byte [rax], 0
jne 0x140051f86
mov rax, qword [rbp + 0x30]
mov rcx, qword [rax]
mov qword [rbp + 8], rcx
add rax, 8
mov qword [rbp + 0x10], rax
xor eax, eax
mov qword [rbp + 0x18], rax
mov rcx, qword [rbp + 8]
mov rax, qword [rbp + 0x18]
mov qword [rbp], rax
cmp rax, rcx
jge 0x140051f86
mov rax, qword [rbp]
mov rcx, qword [rbp + 0x30]
mov rcx, qword [rcx]
mov qword [rbp - 8], rcx
cmp rax, rcx
jl 0x14005165e
mov rcx, qword [rbp]
mov rdx, qword [rbp - 8]
add rdx, 0xffffffffffffffff
sub rsp, 0x20
call fcn.140013c92
add rsp, 0x20
jmp 0x140051f86
mov ecx, dword [0x1401f55b0]
xor ecx, 0xf9eeb07d
mov eax, dword [0x1401f55b4]
xor eax, 0xb1916094
sub ecx, 0x170562ae
add ecx, eax
add ecx, 0x170562ae
mov r8d, 0xffffffff
xor r8d, 0xf3e8d04
mov edx, ecx
and edx, r8d
mov eax, ecx
or eax, r8d
mov r8d, 0x3ce778d7
xor r8d, 0xc3188728
xor eax, r8d
imul eax, edx
mov r8d, 0xf0b88760
xor r8d, 0xff860a64
mov edx, ecx
and edx, r8d
or ecx, 0xf3e8d04
imul ecx, edx
add ecx, eax
mov eax, 0xb1dcc250
xor eax, 0x4e233daf
mov edx, ecx
xor edx, eax
and edx, 0x199ee9f6
mov r8d, 0x8873ebd0
xor r8d, 0x91ed0226
mov eax, 0xbef9e605
xor eax, 0x410619fa
xor r8d, eax
mov eax, ecx
and eax, r8d
imul eax, edx
mov edx, ecx
and edx, 0x199ee9f6
or ecx, 0x199ee9f6
imul ecx, edx
add ecx, eax
mov edx, ecx
xor edx, 0xffffffff
mov eax, 0xf169e17f
xor eax, 0xfef65cad
and eax, edx
mov edx, 0xffffffff
xor edx, 0xf9fbdd2
and ecx, edx
or eax, ecx
mov ecx, 0x8876c30d
xor ecx, 0x71b26c11
cmp eax, ecx
jae 0x1400520d5
mov rcx, qword [rbp + 0x10]
mov eax, dword [0x1401f55b8]
xor edx, edx
div dword [0x1401f55bc]
mov rdx, qword [rbp]
mov r8d, eax
xor r8d, 0xffffffff
and r8d, 0x6d55b17b
mov r9d, 0xfd3a3f80
xor r9d, 0x906f8efb
mov r10d, 0x69714d6f
xor r10d, 0x968eb290
xor r9d, r10d
and eax, r9d
sub eax, r8d
mov r8d, eax
and r8d, 0x627e75ca
shl r8d, 1
add eax, 0x627e75ca
sub eax, r8d
xor eax, 0x66493c3c
mov rcx, qword [rcx]
mov qword [rbp - 0x18], rcx
add rcx, 8
shl rdx, 5
add rcx, rdx
cmp qword [rcx], 0
sete cl
mov byte [rbp - 9], cl
cmp eax, 0x4965d23
jbe 0x1400520d5
mov al, byte [rbp - 9]
test al, 1
jne 0x140051f3f
jmp 0x1400517df
mov eax, dword [0x1401f55c0]
xor eax, 0x3d6d35da
xor edx, edx
div dword [0x1401f55c4]
mov ecx, eax
and ecx, 0x86d07321
mov eax, ecx
and eax, 0x67ad2cc
xor ecx, 0x67ad2cc
or eax, ecx
add eax, 0x7470b28a
mov ecx, 0x6ebfe181
xor ecx, 0x8cc6b024
sub eax, ecx
sub eax, 0x7470b28a
cmp eax, 0x3b432058
jae 0x1400520de
mov rcx, qword [rbp + 0x28]
mov eax, dword [0x1401f55c8]
mov r8d, dword [0x1401f55cc]
xor r8d, 0x542f6516
xor edx, edx
div r8d
mov edx, 0x6a2ebeab
xor edx, 0x2255fa91
sub eax, edx
mov edx, 0x3bfd8b9f
xor edx, 0xed05ac7d
add eax, edx
mov edx, 0xcbc74646
xor edx, 0x83bc027c
add eax, edx
mov edx, eax
xor edx, 0x559064a4
mov r8d, 0xffffffff
xor r8d, 0x559064a4
and eax, r8d
shl eax, 1
sub eax, edx
mov r8d, 0x52846b6d
xor edx, edx
div r8d
mov rdx, qword [rbp]
mov r8d, eax
mov rax, qword [rbp - 0x18]
mov dword [rbp - 0x2c], r8d
add rax, 8
shl rdx, 5
add rax, rdx
add rax, 8
mov rdx, qword [rax]
mov qword [rbp + 0xa8], rdx
mov rax, qword [rax + 8]
mov qword [rbp + 0xb0], rax
lea rdx, [rbp + 0xa8]
sub rsp, 0x20
call fcn.1400191eb
mov rdx, qword [rbp + 0x30]
mov rcx, qword [rbp]
mov eax, dword [rbp - 0x2c]
add rsp, 0x20
mov rdx, qword [rdx]
mov qword [rbp - 0x28], rdx
cmp rcx, rdx
setl cl
mov byte [rbp - 0x19], cl
cmp eax, 0x733dba64
jae 0x14005182b
mov al, byte [rbp - 0x19]
test al, 1
jne 0x140051961
jmp 0x140051914
mov rcx, qword [rbp]
mov rax, qword [rbp - 0x28]
mov rdx, rax
and rdx, 0xffffffffffffffff
movabs r8, 0x82fc5ede398de0d3
movabs r9, 0x7d03a121c6721f2c
xor r8, r9
or rax, r8
add rdx, rax
sub rsp, 0x20
call fcn.140013c92
mov rax, qword [rbp + 0x40]
add rsp, 0x20
mov cl, byte [rax]
xor eax, eax
mov byte [rbp - 0x39], cl
mov qword [rbp - 0x38], rax
jmp 0x140051eff
mov rcx, qword [rbp]
mov rax, qword [rbp + 0x10]
mov rax, qword [rax]
add rax, 8
shl rcx, 5
add rax, rcx
add rax, 0x18
mov rdx, qword [rax]
mov r8b, 1
xor r8b, 1
and r8b, 1
sub rsp, 0x20
lea rcx, [rbp + 0xb8]
call fcn.1401434d4
mov rax, qword [rbp + 0x40]
add rsp, 0x20
mov dl, byte [rax]
mov r8b, 0x68
xor r8b, 0x68
mov cl, 1
xor eax, eax
cmp dl, r8b
mov byte [rbp - 0x39], cl
mov qword [rbp - 0x38], rax
jne 0x140051eff
mov rax, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x38]
mov rdx, qword [rcx + 0x10]
mov qword [rbp + 0xa0], rdx
movups xmm0, xmmword [rcx]
movaps xmmword [rbp + 0x90], xmm0
movups xmm0, xmmword [rax]
movaps xmmword [rbp + 0x80], xmm0
sub rsp, 0x20
lea rcx, [rbp + 0x90]
lea rdx, [rbp + 0x80]
call fcn.1400510e0
add rsp, 0x20
mov cl, al
mov rax, qword [rbp + 0x40]
mov al, byte [rax]
test al, al
setne al
mov byte [rbp - 0x3a], al
or al, cl
test al, 1
jne 0x140051bad
xor eax, eax
mov ecx, eax
sub rsp, 0x20
call fcn.1401429c0
mov rax, qword [rbp + 0x40]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0xca
xor cl, 0xca
cmp al, cl
jne 0x140051f86
mov rcx, qword [rbp + 0xb8]
sub rsp, 0x20
call fcn.1401429c0
mov rcx, qword [rbp + 0x40]
add rsp, 0x20
xor eax, eax
cmp byte [rcx], 0
mov byte [rbp - 0x3b], al
jne 0x1400520be
mov rax, qword [rbp + 0x20]
mov rcx, qword [rax]
mov qword [rbp - 0x48], rcx
xor eax, eax
cmp rcx, 0
mov byte [rbp - 0x3b], al
je 0x1400520be
mov eax, dword [0x1401f55d0]
xor edx, edx
div dword [0x1401f55d4]
mov ecx, eax
mov edx, 0xbe25d959
xor edx, 0xba2371e1
mov eax, ecx
and eax, edx
xor eax, 0xffffffff
mov edx, 0x859fbbd1
xor edx, 0x81991369
and ecx, edx
xor ecx, 0xffffffff
and eax, ecx
xor eax, 0xffffffff
mov ecx, 0xb5b51c13
xor edx, edx
div ecx
mov r8d, eax
mov ecx, 0x89cb43c6
xor ecx, 0x7634bc39
mov eax, r8d
xor eax, ecx
and eax, 0x19f0ae6d
mov edx, 0x13a1f417
xor edx, 0xa515a7a
mov ecx, 0x663e2f1d
xor ecx, 0x99c1d0e2
xor edx, ecx
and r8d, edx
mov ecx, 0xbcfce0a3
xor ecx, 0x5df23bf9
mov r9d, 0xa986a87
xor r9d, 0xf5679578
xor ecx, r9d
and ecx, 0x19f0ae6d
and edx, 0xe10edb5a
or eax, r8d
or ecx, edx
xor eax, ecx
mov ecx, 0xa72c548f
xor ecx, 0xb766a262
cmp eax, ecx
jbe 0x1400520e7
mov rdx, qword [rbp - 0x48]
mov eax, dword [0x1401f55d8]
imul eax, dword [0x1401f55dc]
mov ecx, 0x71028b1c
xor ecx, 0x47c8a880
and eax, ecx
and eax, 0xd0de3586
and eax, 0xc854b55
movabs rcx, 0x4000000000000000
and rcx, qword [rdx]
cmp rcx, 0
sete cl
mov byte [rbp - 0x49], cl
cmp eax, 0x2320b4c
jae 0x140051b32
mov cl, byte [rbp - 0x49]
xor eax, eax
test cl, 1
mov byte [rbp - 0x3b], al
jne 0x140051b92
jmp 0x1400520be
mov rcx, qword [rbp - 0x48]
sub rsp, 0x20
call fcn.14000f935
add rsp, 0x20
xor eax, eax
mov byte [rbp - 0x3b], al
jmp 0x1400520be
mov dl, byte [rbp - 0x3a]
mov cl, 1
xor eax, eax
test dl, 1
mov byte [rbp - 0x39], cl
mov qword [rbp - 0x38], rax
jne 0x140051eff
jmp 0x140051bc9
mov rax, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x38]
mov rdx, qword [rcx + 0x10]
mov qword [rbp + 0x70], rdx
movups xmm0, xmmword [rcx]
movaps xmmword [rbp + 0x60], xmm0
movups xmm0, xmmword [rax]
movaps xmmword [rbp + 0x50], xmm0
sub rsp, 0x20
lea rcx, [rbp + 0x60]
lea rdx, [rbp + 0x50]
call fcn.140051160
mov rcx, qword [rbp + 0x40]
add rsp, 0x20
mov r8, rax
mov rax, r8
mov qword [rbp - 0x58], rax
mov cl, byte [rcx]
test cl, cl
setne dl
mov r9, qword [rbp + 0xb8]
sub r8, r9
sete r8b
or dl, r8b
test dl, 1
mov byte [rbp - 0x39], cl
mov qword [rbp - 0x38], rax
jne 0x140051eff
mov eax, dword [0x1401f55e0]
xor edx, edx
div dword [0x1401f55e4]
mov ecx, eax
xor ecx, 0x95674c99
mov eax, ecx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xdc286b0c
and eax, edx
or ecx, 0xdc286b0c
xor ecx, 0xffffffff
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
add eax, 0x81e80e05
mov ecx, 0x4ea1d0d5
xor ecx, 0x1addfbce
cmp eax, ecx
jbe 0x1400520f0
mov rcx, qword [rbp - 0x58]
mov eax, dword [0x1401f55e8]
mov r8d, dword [0x1401f55ec]
xor r8d, 0x67e278c4
xor edx, edx
div r8d
mov edx, eax
mov r9d, 0x5587a512
xor r9d, 0x8b8fa8f
mov eax, 0xdb37fd46
xor eax, 0x24c802b9
xor r9d, eax
mov r8d, edx
and r8d, r9d
mov eax, edx
or eax, r9d
xor eax, 0xffffffff
imul eax, r8d
mov r8d, edx
and r8d, 0x5d3f5f9d
or edx, 0x5d3f5f9d
imul edx, r8d
add edx, eax
mov r9d, 0xffffffff
xor r9d, 0x5bc0b0c7
mov r8d, edx
and r8d, r9d
mov eax, edx
or eax, r9d
xor eax, 0xffffffff
imul eax, r8d
mov r8d, edx
and r8d, 0x5bc0b0c7
or edx, 0x5bc0b0c7
imul edx, r8d
add edx, eax
mov r8d, 0xffffffff
xor r8d, 0x6d4ad316
mov eax, edx
xor eax, r8d
and eax, edx
mov dword [rbp - 0x60], eax
mov eax, 0xbbf5acea
xor eax, 0x59dceb11
mov dword [rbp - 0x64], eax
sub rsp, 0x20
call fcn.1401429c0
mov rdx, qword [rbp + 0x40]
mov ecx, dword [rbp - 0x64]
mov eax, dword [rbp - 0x60]
add rsp, 0x20
cmp byte [rdx], 0
sete dl
mov byte [rbp - 0x59], dl
cmp eax, ecx
je 0x140051c83
mov al, byte [rbp - 0x59]
test al, 1
jne 0x140051d75
jmp 0x140051f86
mov rcx, qword [rbp + 0xb8]
sub rsp, 0x20
call fcn.1401429c0
mov rcx, qword [rbp + 0x40]
add rsp, 0x20
xor eax, eax
cmp byte [rcx], 0
mov byte [rbp - 0x3b], al
jne 0x1400520be
mov rax, qword [rbp + 0x20]
mov rcx, qword [rax]
mov qword [rbp - 0x70], rcx
xor eax, eax
cmp rcx, 0
mov byte [rbp - 0x3b], al
je 0x1400520be
mov rax, qword [rbp - 0x70]
mov rcx, qword [rax]
mov rax, rcx
add rax, 1
xor rcx, 0xffffffffffffffff
movabs rdx, 0x4000000000000000
or rcx, rdx
add rcx, rax
xor eax, eax
cmp rcx, 0
mov byte [rbp - 0x3b], al
jne 0x1400520be
mov eax, dword [0x1401f55f0]
mov ecx, 0x9cf8a7d6
xor ecx, 0xd1afb67a
xor eax, ecx
mov edx, dword [0x1401f55f4]
mov ecx, 0xb049c0e4
xor ecx, 0x4fb63f1b
xor eax, ecx
xor edx, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0xbcfefd6c
or eax, edx
or ecx, 0xbcfefd6c
mov edx, 0xb191c94
xor edx, 0xf4e6e36b
xor eax, edx
and eax, ecx
mov ecx, eax
and ecx, 0x1c399704
mov edx, 0xa4ab0782
xor edx, 0x5b54f87d
xor ecx, edx
add eax, 0x1c399704
mov edx, 0x33ef12c0
xor edx, 0x33ef12c1
add eax, edx
add eax, ecx
sub eax, 0x5e924036
or eax, 0xf49195e
mov ecx, 0xe2b4a547
xor ecx, 0x1b4c6f91
cmp eax, ecx
ja 0x1400520f9
mov rcx, qword [rbp - 0x70]
mov edx, dword [0x1401f55f8]
mov r8d, dword [0x1401f55fc]
xor r8d, 0xffffffff
mov eax, edx
xor eax, r8d
and eax, edx
mov edx, 0x2f30ebda
xor edx, 0x2f30ebda
mov r8d, 0x9bb928b
xor r8d, 0x9aeaee9f
sub edx, r8d
add eax, edx
mov edx, 0xffffffff
xor edx, 0xc7fcfa4d
add eax, edx
add eax, 1
mov edx, 0xb37552bf
xor edx, 0x1079a56d
sub eax, edx
add eax, 0xf1ac72ee
add eax, 0xa30cf7d2
mov dword [rbp - 0x74], eax
sub rsp, 0x20
call fcn.14000f935
mov eax, dword [rbp - 0x74]
add rsp, 0x20
cmp eax, 0x852ef820
jb 0x140051e77
xor eax, eax
mov byte [rbp - 0x3b], al
jmp 0x1400520be
mov rax, qword [rbp + 0x40]
mov dl, byte [rbp - 0x39]
mov rcx, qword [rbp - 0x38]
mov byte [rbp - 0x75], dl
mov dl, 0xe2
xor dl, 0xe2
mov byte [rax], dl
sub rsp, 0x20
call fcn.1401429c0
mov rax, qword [rbp + 0x40]
add rsp, 0x20
cmp byte [rax], 0
jne 0x140051f86
mov al, byte [rbp - 0x75]
mov rcx, qword [rbp + 0x40]
mov byte [rcx], al
cmp al, 0
jne 0x140051f86
mov rcx, qword [rbp]
movabs rdx, 0x3623e321f36df646
movabs rax, 0x3623e321f36df647
xor rdx, rax
mov rax, rcx
and rax, rdx
movabs rdx, 0x6718bd3c5e3a3b2c
movabs r8, 0x6718bd3c5e3a3b2d
xor rdx, r8
or rcx, rdx
add rax, rcx
mov qword [rbp + 0x18], rax
jmp 0x140051613
mov rax, qword [rbp + 0x40]
mov cl, byte [rax]
mov byte [rbp - 0x77], cl
cmp cl, 0
sete cl
mov byte [rbp - 0x76], cl
mov byte [rax], 0
mov rcx, qword [rbp + 0xb8]
sub rsp, 0x20
call fcn.1401429c0
mov rax, qword [rbp + 0x40]
add rsp, 0x20
mov cl, byte [rax]
mov dl, 0xa5
xor dl, 0xa5
xor eax, eax
cmp cl, dl
mov byte [rbp - 0x3b], al
jne 0x1400520be
mov rax, qword [rbp + 0x20]
mov rax, qword [rax]
mov qword [rbp - 0x80], rax
cmp rax, 0
je 0x140052008
mov rcx, qword [rbp - 0x80]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
cmp rax, 0
jne 0x140052008
mov rcx, qword [rbp - 0x80]
sub rsp, 0x20
call fcn.14000f935
add rsp, 0x20
mov eax, dword [str.cXr]
xor eax, 0x779bd3cd
imul eax, dword [0x1401f5604]
mov edx, 0x8469c658
xor edx, 0xb92f4022
mov ecx, eax
xor ecx, edx
xor ecx, 0xffffffff
or eax, 0x3d46867a
and eax, ecx
mov ecx, 0x8f843048
xor ecx, 0x28a182d2
and eax, ecx
mov ecx, 0x48ea8aea
xor ecx, 0xead657c5
sub eax, ecx
cmp eax, 0x74bc5fe5
ja 0x140052102
mov rdx, qword [rbp + 0x40]
mov r8b, byte [rbp - 0x77]
mov eax, dword [0x1401f5608]
and eax, dword [0x1401f560c]
mov ecx, 0xfcf9f48b
xor ecx, 0x130c6cda
add eax, ecx
sub eax, 0xd84b111d
mov ecx, 0x2edc4bb3
xor ecx, 0xc129d3e2
sub eax, ecx
mov ecx, 0x65a0416b
xor ecx, 0xfaa1ed11
and eax, ecx
xor eax, 0xb52884cf
mov ecx, 0xbfa88575
xor ecx, 0x671320ee
mov byte [rdx], r8b
cmp eax, ecx
je 0x140052102
mov al, byte [rbp - 0x76]
mov byte [rbp - 0x3b], al
jmp 0x1400520be
mov al, byte [rbp - 0x3b]
mov byte [rbp + 0x4f], al
mov al, byte [rbp + 0x4f]
and al, 1
movzx eax, al
lea rsp, [rbp + 0xc0]
pop rbp
ret
add eax, esp
loop 0x140052083
jmp 0x140051746
cmc
mov dh, 0x4a
test eax, 0xfff744e9
inc dword [rdi + 0x24]
jle 0x140052147
and al, 0x7e
pop rsp
jmp 0x140051b32
test al, 0xce
hlt
pop rcx
loopne 0x140052134
sub al, 0xe9
jne 0x1400520fd
jmp 0x140051e77
invalid
in eax, dx
in eax, 0xd0
xchg ecx, eax
jmp 0x140052058
mov rax, qword [rcx + 8]