Function at 0x140164440
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x70
lea rbp, [rsp + 0x70]
mov qword [rbp - 0x10], rcx
mov eax, 0x10
mov qword [rbp - 0x28], rax
call fcn.14024abd0
sub rsp, rax
mov rax, qword [rbp - 0x28]
mov rcx, rsp
mov qword [rbp - 0x20], rcx
call fcn.14024abd0
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x18], rax
sub rsp, 0x20
call fcn.14019ba7e
mov rcx, qword [rbp - 0x10]
add rsp, 0x20
add rax, 0x50
mov qword [rbp - 8], rax
cmp byte [rcx], 0
jne 0x14016463f
mov rax, qword [rbp - 0x10]
mov rcx, rax
add rcx, 8
mov qword [rbp - 0x30], rcx
mov rcx, qword [rax + 8]
lea rdx, [0x140254600]
sub rsp, 0x20
call fcn.140164070
add rsp, 0x20
test al, 1
jne 0x1401644cf
jmp 0x14016460e
mov rax, qword [rbp - 0x30]
mov rcx, qword [rax]
sub rsp, 0x20
call fcn.14004f80a
mov rax, qword [rbp - 8]
add rsp, 0x20
cmp byte [rax], 0
jne 0x140164b49
mov eax, dword [0x140254bb0]
add eax, dword [0x140254bb4]
mov ecx, eax
add ecx, 1
xor eax, 0xffffffff
or eax, 0x4429bc
add eax, ecx
mov ecx, 0x8b95b87d
xor ecx, 0x71ddf160
xor edx, edx
div ecx
mov ecx, 0x9303954d
xor ecx, 0x4bd2265d
add eax, ecx
mov ecx, 0xad0ed54b
xor ecx, 0xe7926aaa
sub eax, ecx
mov ecx, 0xc1893ae4
xor ecx, 0x195889f4
sub eax, ecx
cmp eax, 0xecf5d9eb
ja 0x140164b4e
mov eax, dword [0x140254bb8]
mov edx, dword [0x140254bbc]
xor edx, 0x80f9dc9e
xor ecx, ecx
sub ecx, eax
mov eax, 0x1d4ab906
xor eax, 0x1d4ab906
sub eax, edx
add ecx, eax
mov eax, 0x785d9302
xor eax, 0x785d9302
sub eax, ecx
mov ecx, 0xa4c594f6
xor edx, edx
div ecx
mov ecx, eax
mov rax, qword [rbp - 0x30]
or ecx, 0xcbc81fa6
mov r8d, ecx
xor r8d, 0xffffffff
and r8d, 0xb08f80c6
mov r9d, 0x380b835c
xor r9d, 0x8884039a
mov edx, 0x6ac0ed72
xor edx, 0x953f128d
xor r9d, edx
mov edx, ecx
and edx, r9d
imul edx, r8d
mov r8d, ecx
and r8d, 0xb08f80c6
mov r9d, 0xdeb2217a
xor r9d, 0x6e3da1bc
or ecx, r9d
imul ecx, r8d
add ecx, edx
mov dword [rbp - 0x34], ecx
mov rcx, qword [rax]
mov edx, 8
sub rsp, 0x20
call fcn.14000ef30
mov eax, dword [rbp - 0x34]
add rsp, 0x20
cmp eax, 0x2c715b40
je 0x140164b4e
jmp 0x14016460e
mov rcx, qword [rbp - 0x20]
mov rax, qword [rbp - 0x10]
mov rdx, qword [rax + 0x10]
mov qword [rcx], rdx
mov rax, qword [rax + 0x18]
mov qword [rcx + 8], rax
sub rsp, 0x20
call fcn.140163d00
mov rax, qword [rbp - 8]
add rsp, 0x20
cmp byte [rax], 0
jne 0x140164b49
mov ecx, dword [0x140254bc0]
xor ecx, 0xe2942ba6
mov eax, dword [0x140254bc4]
sub ecx, 0xdf9cdf3e
add ecx, eax
mov eax, 0xf3d79d30
xor eax, 0x2c4b420e
add ecx, eax
mov edx, 0xffffffff
xor edx, 0x4be74e03
mov eax, ecx
xor eax, edx
and eax, ecx
mov ecx, 0x57b08007
xor edx, edx
div ecx
mov ecx, eax
mov edx, 0xfbfe0bed
xor edx, 0xb731d3f
mov eax, 0xc1bd69b5
xor eax, 0x3e42964a
xor edx, eax
mov eax, ecx
xor eax, edx
and eax, ecx
cmp eax, 0x863a21fa
jae 0x140164b57
mov rcx, qword [rbp - 0x10]
mov edx, dword [0x140254bc8]
mov r9d, dword [0x140254bcc]
mov r8d, 0xa1e335c4
xor r8d, 0x5e1cca3b
mov eax, edx
xor eax, r8d
mov r8d, edx
xor r8d, 0xffffffff
or eax, r8d
and eax, r9d
xor eax, 0xffffffff
mov r8d, r9d
xor r8d, 0xffffffff
xor r9d, 0xffffffff
or r8d, r9d
xor edx, 0xffffffff
mov r9d, 0x5f6c9557
xor r9d, 0xa0936aa8
xor r8d, r9d
or edx, r8d
xor eax, 0xffffffff
mov r8d, 0x3b77b981
xor r8d, 0xc488467e
xor edx, r8d
or eax, edx
xor eax, 0x5ee1bb2b
mov r8d, 0x5ce7547c
xor edx, edx
div r8d
xor eax, 0x16e9491b
mov rcx, qword [rcx + 0x30]
mov qword [rbp - 0x40], rcx
cmp rcx, 0
sete cl
mov byte [rbp - 0x35], cl
cmp eax, 0x72ef3a19
ja 0x140164b57
mov al, byte [rbp - 0x35]
test al, 1
jne 0x1401648c5
jmp 0x140164757
mov rcx, qword [rbp - 0x40]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
cmp rax, 0
jne 0x1401648c5
mov edx, dword [0x140254bd0]
mov eax, dword [0x140254bd4]
xor eax, 0x6f341469
mov r8d, 0x617ffe81
xor r8d, 0x9e80017e
mov ecx, edx
xor ecx, r8d
xor edx, 0xffffffff
and ecx, edx
or eax, eax
mov edx, 0xfaf45203
xor edx, 0x50badfc
xor eax, edx
xor ecx, 0xffffffff
xor eax, 0xffffffff
and ecx, eax
mov eax, 0xffffffff
xor eax, 0xec1c0617
add ecx, eax
mov eax, 0xf72902e9
xor eax, 0xf72902e8
add ecx, eax
sub ecx, 0x10347898
mov edx, 0x66c9073c
xor edx, 0x771efcc4
mov eax, ecx
or eax, edx
mov edx, 0xba7b0455
xor edx, 0x4584fbaa
xor eax, edx
or ecx, 0x11d7fbf8
xor ecx, 0xffffffff
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
cmp eax, 0x1fc01d55
jae 0x140164b60
mov rcx, qword [rbp - 0x40]
mov edx, dword [0x140254bd8]
mov r8d, dword [0x140254bdc]
mov eax, edx
and eax, r8d
or edx, r8d
add eax, edx
mov edx, eax
and edx, 0x36959f61
mov r8d, 0xe2576d11
xor r8d, 0x1da892ee
xor edx, r8d
add eax, 0x36959f61
add eax, 1
add eax, edx
mov r9d, 0xffffffff
xor r9d, 0x832a7bdb
mov r8d, eax
and r8d, r9d
mov edx, eax
or edx, r9d
xor edx, 0xffffffff
imul edx, r8d
mov r9d, 0xf06356ae
xor r9d, 0x73492d75
mov r8d, eax
and r8d, r9d
or eax, 0x832a7bdb
imul eax, r8d
add eax, edx
mov r8d, 0xffffffff
xor r8d, 0xad0affa
mov edx, eax
and edx, r8d
mov r8d, eax
xor r8d, 0xad0affa
add eax, r8d
sub eax, edx
mov dword [rbp - 0x44], eax
sub rsp, 0x20
call fcn.14000eec9
mov eax, dword [rbp - 0x44]
add rsp, 0x20
cmp eax, 0xe517686
jb 0x140164b60
jmp 0x1401648c5
mov rax, qword [rbp - 0x10]
mov rcx, rax
add rcx, 0x38
mov qword [rbp - 0x50], rcx
mov rcx, qword [rax + 0x38]
lea rdx, [0x1402545c8]
sub rsp, 0x20
call fcn.140164070
add rsp, 0x20
test al, 1
jne 0x1401648f9
jmp 0x140164945
mov rax, qword [rbp - 0x50]
mov rcx, qword [rax]
sub rsp, 0x20
call fcn.140164440
mov rax, qword [rbp - 8]
add rsp, 0x20
cmp byte [rax], 0
jne 0x140164b49
mov rax, qword [rbp - 0x50]
mov rcx, qword [rax]
movabs rdx, 0x2f17a853d117ce4f
movabs rax, 0x2f17a853d117ce47
xor rdx, rax
sub rsp, 0x20
call fcn.14000ef30
add rsp, 0x20
mov rax, qword [rbp - 0x10]
mov rcx, rax
add rcx, 0x40
mov qword [rbp - 0x58], rcx
mov rcx, qword [rax + 0x40]
lea rdx, [0x1402545c8]
sub rsp, 0x20
call fcn.140164070
add rsp, 0x20
test al, 1
jne 0x140164979
jmp 0x1401649b3
mov rax, qword [rbp - 0x58]
mov rcx, qword [rax]
sub rsp, 0x20
call fcn.140164440
mov rax, qword [rbp - 8]
add rsp, 0x20
cmp byte [rax], 0
jne 0x140164b49
mov rax, qword [rbp - 0x58]
mov rcx, qword [rax]
mov edx, 8
sub rsp, 0x20
call fcn.14000ef30
add rsp, 0x20
mov rax, qword [rbp - 0x10]
mov rax, qword [rax + 0x50]
mov qword [rbp - 0x60], rax
cmp rax, 0
je 0x140164b25
mov rcx, qword [rbp - 0x60]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
cmp rax, 0
jne 0x140164b25
mov ecx, dword [0x140254be0]
mov edx, dword [0x140254be4]
mov eax, ecx
or eax, eax
xor eax, 0xffffffff
mov r8d, edx
xor r8d, 0xffffffff
mov r10d, 0x20a084fd
xor r10d, 0xdf5f7b02
mov r9d, edx
xor r9d, r10d
and r8d, r9d
xor eax, 0xffffffff
xor r8d, 0xffffffff
and eax, r8d
or ecx, edx
mov edx, 0x9946dad4
xor edx, 0x66b9252b
xor ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0xbbdf60b4
mov r8d, 0xffffffff
xor r8d, 0xbbdf60b4
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov r8d, 0xb98f1850
xor r8d, 0x25078e4
mov edx, eax
and edx, r8d
mov r8d, 0xfc678b36
xor r8d, 0x47b8eb82
or eax, r8d
imul eax, edx
add eax, ecx
xor ecx, ecx
sub ecx, 0x206ab33d
sub eax, ecx
mov ecx, eax
xor ecx, 0xf93dd59f
mov edx, 0xc2f7bf32
xor edx, 0x3d0840cd
xor ecx, edx
mov edx, 0xc726d0ad
xor edx, 0x3e1b0532
and edx, ecx
mov ecx, 0x9fd309d5
xor ecx, 0x9fd309d7
imul ecx, edx
sub ecx, 0xf93dd59f
sub eax, ecx
cmp eax, 0xd150f43a
je 0x140164b69
mov rcx, qword [rbp - 0x60]
mov eax, dword [0x140254be8]
xor edx, edx
div dword [0x140254bec]
mov r8d, 0x3b859743
xor edx, edx
div r8d
sub eax, 0xbe64111e
mov edx, 0x9b8e5d82
xor edx, 0xaedb4e3c
add eax, edx
add eax, 0xbe64111e
add eax, 0x2c6c3d3a
mov dword [rbp - 0x64], eax
sub rsp, 0x20
call fcn.14000eec9
mov eax, dword [rbp - 0x64]
add rsp, 0x20
cmp eax, 0x1544d76
jbe 0x140164ac9
jmp 0x140164b25
mov rcx, qword [rbp - 0x18]
mov rax, qword [rbp - 0x10]
mov rdx, qword [rax + 0x58]
mov qword [rcx], rdx
mov rax, qword [rax + 0x60]
mov qword [rcx + 8], rax
sub rsp, 0x20
call fcn.14015b530
add rsp, 0x20
mov rsp, rbp
pop rbp
ret
cwde
cdq
add ecx, ebp
cmc
stc
invalid
cmp eax, 0xe91c9cec
sti
invalid
outsd dx, dword [rsi]
sbb ch, dl
sub ecx, 0xfffffc9e
invalid