Function at 0x140151370
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0xa0
lea rbp, [rsp + 0x80]
mov byte [rbp - 0x29], r8b
mov qword [rbp - 0x28], rdx
mov qword [rbp - 0x10], rcx
mov qword [rbp - 0x20], rcx
mov eax, 0x10
call fcn.14024abd0
sub rsp, rax
mov rax, rsp
mov qword [rbp - 0x18], rax
sub rsp, 0x20
call fcn.14014be98
mov rcx, qword [rbp - 0x10]
add rsp, 0x20
mov qword [rbp], rax
movabs rax, 0x71a05705dcf8cbaa
movabs rdx, 0x71a05705dcf8cbaa
xor rax, rdx
mov qword [rcx], rax
mov qword [rcx + 8], 0
mov qword [rbp + 0x10], 0
lea rax, [rbp + 0x10]
add rax, 8
mov qword [rbp - 8], rax
mov qword [rbp + 0x18], 0
sub rsp, 0x20
call fcn.140147a90
mov rax, qword [rbp]
add rsp, 0x20
cmp byte [rax], 0
jne 0x140151ba3
mov rax, qword [rbp - 0x28]
mov rcx, qword [rbp - 0x18]
mov dword [rcx], 0x1f
mov rcx, qword [rax]
mov qword [rbp - 0x38], rcx
movabs rdx, 0xdf51cee9ff7c0176
movabs rax, 0x20ae31167f7c0176
xor rdx, rax
mov rax, rcx
and rax, rdx
or rcx, 0xffffffff80000000
add rax, rcx
movabs rcx, 0x4d038be7e08cd0a6
movabs rdx, 0xb2fc7418e08cd0a6
xor rcx, rdx
cmp rax, rcx
jae 0x1401514b1
mov rcx, qword [rbp - 0x38]
movabs rdx, 0x6b1464b1b67bd142
movabs rax, 0x94eb9b4e367bd142
xor rdx, rax
movabs r8, 0xc0760efc957bc5d1
movabs rax, 0xc0760efcea843a2e
xor r8, rax
sub rsp, 0x20
call fcn.14000d792
add rsp, 0x20
jmp 0x140151ba3
mov rdx, qword [rbp - 0x38]
mov rax, qword [rbp - 0x28]
mov rcx, qword [rax + 8]
add rcx, 8
test rdx, rdx
lea rax, [0x140263ba8]
cmove rcx, rax
mov rax, qword [0x140264668]
mov rax, qword [rax]
sub rsp, 0x20
call rax
add rsp, 0x20
mov rcx, rax
mov al, byte [rbp - 0x29]
mov qword [rbp - 0x40], rcx
mov qword [rbp + 8], 0
sub al, 1
je 0x140151512
jmp 0x140151502
mov al, byte [rbp - 0x29]
sub al, 2
je 0x140151610
jmp 0x14015179c
mov rax, qword [0x1402d7da0]
mov qword [rbp - 0x48], rax
cmp rax, 0
jne 0x1401515db
movabs rcx, 0x421f6f4b92c94a67
movabs rax, 0x421f6f4b92c94a27
xor rcx, rax
movabs rdx, 0xb7c6e3096bd7cadc
movabs rax, 0xb7c6e3096bd7cad4
xor rdx, rax
sub rsp, 0x20
call fcn.140012610
add rsp, 0x20
mov rcx, rax
mov rax, qword [0x140264728]
mov qword [rcx], rax
lea rax, [0x140263ad0]
mov qword [rcx + 0x10], rax
mov rax, qword [0x140263b88]
mov qword [rcx + 0x18], rax
mov rax, qword [0x140263b90]
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
movabs rax, 0x6272ad29624a773b
movabs rdx, 0x9d8d52d6caf96728
xor rax, rdx
lea rdx, [0x140263ad0]
lea r8, [0x140263b2e]
lea r9, [0x140263af3]
sub rsp, 0x30
mov qword [rsp + 0x20], rax
call fcn.14001203f
add rsp, 0x30
jmp 0x140151ba3
mov r9, qword [rbp - 0x18]
mov rdx, qword [rbp - 0x40]
mov rcx, qword [rbp - 0x48]
mov rax, qword [rcx]
lea r8, [rbp + 8]
sub rsp, 0x20
call qword [rax + 0x28]
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp]
mov dword [rbp - 0x4c], ecx
cmp byte [rax], 0
je 0x140151850
jmp 0x140151ba3
mov eax, dword [0x1402542f8]
mov ecx, dword [0x1402542fc]
xor ecx, 0x72993f9f
xor edx, edx
div ecx
mov edx, eax
mov ecx, 0xc37608ef
xor ecx, 0x63a92304
mov eax, edx
xor eax, ecx
mov ecx, 0xffffffff
xor ecx, 0xa0df2beb
and edx, ecx
mov ecx, 0x435e0529
xor ecx, 0x435e052b
imul ecx, edx
sub ecx, eax
mov eax, ecx
and eax, 0x7e2c712d
mov edx, 0x8dac458d
xor edx, 0xf38034a0
xor ecx, edx
or eax, ecx
mov ecx, 0x88c5bc40
xor ecx, 0xa0499574
and eax, ecx
cmp eax, 0xd5174614
jae 0x140151bad
mov r8d, dword [0x140254300]
mov eax, dword [0x140254304]
xor eax, 0x8094bee0
imul r8d, eax
add r8d, 0x48bdff8f
mov eax, 0x29640d20
xor eax, 0xd69bf2df
mov ecx, r8d
xor ecx, eax
mov eax, 0x9969e85d
xor eax, 0xf46177fd
and eax, ecx
mov edx, 0x13487bb9
xor edx, 0x7e40e419
mov ecx, 0x1aee6c22
xor ecx, 0xe51193dd
xor edx, ecx
and r8d, edx
mov ecx, 0xffffffff
xor ecx, 0x2e240c91
and ecx, 0x6d089fa0
and edx, 0x2e240c91
or eax, r8d
or ecx, edx
xor eax, ecx
mov ecx, 0xd3f59da8
xor ecx, 0xcb0aec59
imul eax, ecx
mov dword [rbp - 0x50], eax
mov eax, 0x1c74b7e3
xor eax, 0xb29f6cc7
mov dword [rbp - 0x54], eax
mov ecx, 0x40
mov edx, 8
sub rsp, 0x20
call fcn.140012610
add rsp, 0x20
mov rcx, rax
mov rax, qword [0x140264728]
mov qword [rcx], rax
lea rax, [0x140263ad0]
mov qword [rcx + 0x10], rax
mov rax, qword [0x140263b88]
mov qword [rcx + 0x18], rax
mov rax, qword [0x140263b90]
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
lea rdx, [0x140263ad0]
lea r8, [0x140263b2e]
lea r9, [0x140263af3]
sub rsp, 0x30
mov qword [rsp + 0x20], 0xffffffffb0e57e3b
call fcn.14001203f
mov ecx, dword [rbp - 0x54]
mov eax, dword [rbp - 0x50]
add rsp, 0x30
cmp eax, ecx
jae 0x140151bad
jmp 0x140151ba3
movabs rcx, 0x5885a018da1a4309
movabs rax, 0x5885a018da1a4349
xor rcx, rax
movabs rdx, 0x84943fc242776398
movabs rax, 0x84943fc242776390
xor rdx, rax
sub rsp, 0x20
call fcn.140012610
add rsp, 0x20
mov rcx, rax
mov rax, qword [0x140264728]
mov qword [rcx], rax
lea rax, [0x140263ad0]
mov qword [rcx + 0x10], rax
mov rax, qword [0x140263b88]
mov qword [rcx + 0x18], rax
mov rax, qword [0x140263b90]
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
movabs rax, 0xb6bf0eea69381c17
movabs rdx, 0x4940f11590397f31
xor rax, rdx
lea rdx, [0x140263ad0]
lea r8, [0x140263b2e]
lea r9, [0x140263af3]
sub rsp, 0x30
mov qword [rsp + 0x20], rax
call fcn.14001203f
add rsp, 0x30
jmp 0x140151ba3
mov eax, dword [rbp - 0x4c]
cmp eax, 0
jge 0x1401518d9
mov ecx, 0x40
mov edx, 8
sub rsp, 0x20
call fcn.140012610
add rsp, 0x20
mov rcx, rax
mov rax, qword [0x140264728]
mov qword [rcx], rax
lea rax, [0x140263ad0]
mov qword [rcx + 0x10], rax
mov rax, qword [0x140263b88]
mov qword [rcx + 0x18], rax
mov rax, qword [0x140263b90]
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
lea rdx, [0x140263ad0]
lea r8, [0x140263b2e]
lea r9, [0x140263af3]
sub rsp, 0x30
mov qword [rsp + 0x20], 0x9860d44
call fcn.14001203f
add rsp, 0x30
jmp 0x140151ba3
mov rdx, qword [rbp + 8]
lea rcx, [rbp + 0x10]
sub rsp, 0x20
call fcn.1401511d8
mov rax, qword [rbp]
add rsp, 0x20
cmp byte [rax], 0
jne 0x140151a82
mov rax, qword [rbp - 0x10]
mov rcx, qword [rbp + 0x10]
mov qword [rax], rcx
mov rcx, qword [rbp + 0x18]
mov qword [rax + 8], rcx
lea rcx, [rbp + 0x10]
sub rsp, 0x20
call fcn.140010107
mov rax, qword [rbp - 8]
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp - 0x60], rax
cmp rax, 0
je 0x140151ba3
mov ecx, dword [0x140254308]
xor ecx, 0x32bcafe
mov eax, dword [0x14025430c]
mov edx, 0x116ec24c
xor edx, 0x82088edb
xor eax, edx
and ecx, eax
add ecx, 0x75805eff
mov edx, 0xffffffff
xor edx, 0x398d5543
mov eax, ecx
xor eax, edx
and eax, ecx
or eax, 0x63c4a318
cmp eax, 0xd628dd63
ja 0x140151bb6
mov eax, dword [0x140254310]
mov ecx, dword [0x140254314]
mov edx, 0x63f01e1d
xor edx, 0xe2baef6d
xor ecx, edx
add eax, ecx
mov ecx, 0x5e11bf8c
xor ecx, 0xb3b8a929
xor edx, edx
div ecx
mov rdx, qword [rbp - 0x60]
mov ecx, eax
mov r8d, 0xdefa3bcc
xor r8d, 0x2105c433
mov eax, ecx
xor eax, r8d
mov r8d, ecx
xor r8d, 0xffffffff
and eax, r8d
mov r8d, 0xffffffff
xor r8d, 0x5939f5b9
mov r9d, 0xffffffff
xor r9d, 0x5939f5b9
and r8d, r9d
xor eax, 0xffffffff
xor r8d, 0xffffffff
and eax, r8d
or ecx, 0x5939f5b9
mov r8d, 0xc7fb581e
xor r8d, 0x3804a7e1
xor ecx, r8d
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0xffffffff
xor ecx, 0x135f48ec
xor r8d, r8d
sub r8d, 1
sub ecx, r8d
sub eax, ecx
movabs rcx, 0x4000000000000000
and rcx, qword [rdx]
movabs rdx, 0xe728b75a50ef05cc
movabs r8, 0xe728b75a50ef05cc
xor rdx, r8
cmp rcx, rdx
sete cl
mov byte [rbp - 0x61], cl
cmp eax, 0xe8686cee
ja 0x14015197c
mov al, byte [rbp - 0x61]
test al, 1
jne 0x140151a6c
jmp 0x140151ba3
mov rcx, qword [rbp - 0x60]
sub rsp, 0x20
call fcn.14000eec9
add rsp, 0x20
jmp 0x140151ba3
mov rax, qword [rbp - 8]
mov rax, qword [rax]
mov qword [rbp - 0x70], rax
cmp rax, 0
je 0x140151ba3
mov rcx, qword [rbp - 0x70]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
movabs rcx, 0xd0eb0ce8bb916e86
movabs rdx, 0xd0eb0ce8bb916e86
xor rcx, rdx
cmp rax, rcx
jne 0x140151ba3
mov ecx, dword [0x140254318]
mov edx, dword [0x14025431c]
xor edx, 0x27b2f374
mov eax, ecx
or eax, edx
xor eax, 0xffffffff
or ecx, edx
xor ecx, 0xffffffff
mov edx, 0x816d443a
xor edx, 0x7e92bbc5
xor eax, edx
mov edx, 0x44225c5f
xor edx, 0xbbdda3a0
xor ecx, edx
and eax, ecx
and eax, 0x55ecd4c0
or eax, eax
xor eax, 0xffffffff
mov ecx, 0x94678c19
or ecx, 0x94678c19
mov edx, 0x23a573e9
xor edx, 0xdc5a8c16
xor ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
mov ecx, eax
and ecx, 0x4ac6bcd9
shl ecx, 1
mov edx, 0xf3f1b036
xor edx, 0xb9370cef
xor eax, edx
add eax, ecx
mov ecx, 0xb0759189
xor ecx, 0x2936c3a
cmp eax, ecx
jae 0x140151bbf
mov rcx, qword [rbp - 0x70]
mov eax, dword [0x140254320]
xor edx, edx
div dword [0x140254324]
mov r8d, 0xbe2db74c
xor edx, edx
div r8d
sub eax, 0xbf7ce2b3
xor eax, 0xea456c9a
mov dword [rbp - 0x74], eax
sub rsp, 0x20
call fcn.14000eec9
mov eax, dword [rbp - 0x74]
add rsp, 0x20
cmp eax, 0xcbd53fba
jae 0x140151b59
jmp 0x140151ba3
mov rax, qword [rbp - 0x20]
lea rsp, [rbp + 0x20]
pop rbp
ret
add dword [rax + rdi*8 - 0x6e], ebp
jmp 0x140151682
xor edx, ebx
mov dword [rax - 0x17], 0xfffffdbd
sbb ah, al
xor dword [rax - 0x6e17], eax
dec dword [rdi]
invalid