Function at 0x140096130
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x240
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x78], rdx
mov qword [rbp + 0x80], rcx
mov qword [rbp + 0x38], rcx
mov eax, 0x10
mov qword [rbp + 0x58], rax
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0x58]
mov rcx, rsp
mov qword [rbp + 0x40], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0x58]
mov rcx, rsp
mov qword [rbp + 0x48], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0x58]
mov rcx, rsp
mov qword [rbp + 0x50], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, qword [rbp + 0x58]
mov rcx, rsp
mov qword [rbp + 0x60], rcx
call fcn.14023fff0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x68], rax
sub rsp, 0x20
call fcn.140096e13
mov rcx, qword [rbp + 0x80]
add rsp, 0x20
mov qword [rbp + 0x98], rax
mov qword [rcx], 0
mov rax, rcx
add rax, 8
mov qword [rbp + 0x70], rax
mov qword [rcx + 8], 0
lea rcx, [rbp + 0x1a0]
sub rsp, 0x20
call fcn.140096e30
mov rdx, qword [rbp + 0x78]
mov rcx, qword [rbp + 0x80]
add rsp, 0x20
movabs rax, 0x5af718cc9528e53e
movabs r8, 0x5af718cc9528e53e
xor rax, r8
mov qword [rbp + 0x190], rax
lea rax, [rbp + 0x190]
add rax, 8
mov qword [rbp + 0x88], rax
mov qword [rbp + 0x198], 0
mov qword [rbp + 0x180], 0
lea rax, [rbp + 0x180]
add rax, 8
mov qword [rbp + 0x90], rax
mov qword [rbp + 0x188], 0
mov rax, qword [rdx]
mov qword [rbp + 0x170], rax
mov rax, qword [rdx + 8]
mov qword [rbp + 0x178], rax
lea rdx, [rbp + 0x170]
mov r8d, 0x5c
sub rsp, 0x20
call fcn.140095460
mov rax, qword [rbp + 0x98]
add rsp, 0x20
cmp byte [rax], 0
jne 0x140096ccd
mov rax, qword [rbp + 0x80]
mov rcx, qword [rax]
mov qword [rbp + 0x160], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x168], rax
lea rcx, [rbp + 0x160]
lea rdx, [rbp + 0x1a0]
sub rsp, 0x20
call fcn.14008d2b0
mov rax, qword [rbp + 0x98]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0x32
xor cl, 0x32
cmp al, cl
jne 0x140096ccd
mov rax, qword [rbp + 0x1a0]
mov qword [rbp + 0x190], rax
mov rax, qword [rbp + 0x1a8]
mov qword [rbp + 0x198], rax
lea rcx, [rbp + 0x1a0]
sub rsp, 0x20
call fcn.140010ae7
add rsp, 0x20
lea rcx, [rbp + 0x1a0]
add rcx, 0x10
mov rax, qword [rbp + 0x1b0]
mov qword [rbp + 0x180], rax
mov rax, qword [rbp + 0x1b8]
mov qword [rbp + 0x188], rax
sub rsp, 0x20
call fcn.140010ae7
mov rcx, qword [rbp + 0x80]
add rsp, 0x20
mov rax, qword [rbp + 0x180]
mov qword [rbp + 0x150], rax
mov rax, qword [rbp + 0x188]
mov qword [rbp + 0x158], rax
lea rdx, [rbp + 0x150]
sub rsp, 0x20
call fcn.140013d6a
add rsp, 0x20
lea rcx, [rbp + 0x180]
sub rsp, 0x20
call fcn.140010ae7
mov rax, qword [rbp + 0x80]
add rsp, 0x20
mov rcx, qword [rax]
mov qword [rbp + 0x140], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x148], rax
lea rcx, [rbp + 0x140]
sub rsp, 0x20
call fcn.1400956c0
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x98]
mov qword [rbp + 0x30], rcx
cmp byte [rax], 0
jne 0x140096ccd
mov ecx, 0x5f6
sub rsp, 0x20
call fcn.14006580e
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x98]
mov qword [rbp + 0x28], rcx
cmp byte [rax], 0
jne 0x140096ccd
mov rax, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x30]
cmp rax, rcx
jg 0x1400964ea
mov cx, 0xf227
xor cx, 0xf245
sub rsp, 0x20
call fcn.14006580e
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x98]
mov qword [rbp + 0x20], rcx
mov al, byte [rax]
mov cl, 0xc0
xor cl, 0xc0
cmp al, cl
jne 0x140096ccd
mov rax, qword [rbp + 0x80]
mov rcx, qword [rbp + 0x40]
mov r9, qword [rbp + 0x30]
mov r8, qword [rbp + 0x20]
mov rdx, qword [rbp + 0x48]
mov r10, qword [rax]
mov qword [rdx], r10
mov rax, qword [rax + 8]
mov qword [rdx + 8], rax
sub rsp, 0x20
call fcn.140019c70
mov rax, qword [rbp + 0x40]
mov rcx, qword [rbp + 0x80]
add rsp, 0x20
mov rdx, qword [rax]
mov rax, qword [rax + 8]
mov qword [rbp + 0x130], rdx
mov qword [rbp + 0x138], rax
lea rdx, [rbp + 0x130]
sub rsp, 0x20
call fcn.140013d6a
mov rcx, qword [rbp + 0x80]
add rsp, 0x20
xor edx, edx
sub rsp, 0x20
call fcn.140095a50
mov rax, qword [rbp + 0x98]
add rsp, 0x20
cmp byte [rax], 0
je 0x140096804
jmp 0x140096ccd
mov word [rbp + 0x12e], 0xb22
lea rcx, [rbp + 0x12e]
sub rsp, 0x20
call fcn.140064b20
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x98]
mov qword [rbp + 0x18], rcx
mov al, byte [rax]
mov cl, 0xee
xor cl, 0xee
cmp al, cl
jne 0x140096791
mov rax, qword [rbp + 0x18]
mov rcx, qword [rbp + 0x80]
mov rdx, qword [rcx]
mov qword [rbp + 0x118], rdx
mov rcx, qword [rcx + 8]
mov qword [rbp + 0x120], rcx
mov rcx, qword [rax]
mov qword [rbp + 0x108], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x110], rax
lea rcx, [rbp + 0x118]
lea rdx, [rbp + 0x108]
sub rsp, 0x20
call fcn.140096fb0
add rsp, 0x20
test al, 1
jne 0x140096755
mov word [rbp + 0x12c], 0x614
lea rcx, [rbp + 0x12c]
sub rsp, 0x20
call fcn.140064b20
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x98]
mov qword [rbp + 0x10], rcx
cmp byte [rax], 0
jne 0x140096791
mov rax, qword [rbp + 0x10]
mov rcx, qword [rbp + 0x80]
mov rdx, qword [rcx]
mov qword [rbp + 0xf8], rdx
mov rcx, qword [rcx + 8]
mov qword [rbp + 0x100], rcx
mov rcx, qword [rax]
mov qword [rbp + 0xe8], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0xf0], rax
lea rcx, [rbp + 0xf8]
lea rdx, [rbp + 0xe8]
sub rsp, 0x20
call fcn.140096fb0
add rsp, 0x20
test al, 1
jne 0x140096755
mov cx, 0xbe45
xor cx, 0xba8f
sub rsp, 0x20
call fcn.14006580e
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x98]
mov qword [rbp + 8], rcx
cmp byte [rax], 0
jne 0x140096791
mov rax, qword [rbp + 0x80]
mov rcx, qword [rbp + 8]
cmp qword [rax], rcx
je 0x140096755
mov cx, 0xa58d
xor cx, 0xa53b
sub rsp, 0x20
call fcn.14006580e
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x98]
mov qword [rbp], rcx
cmp byte [rax], 0
jne 0x140096791
mov rdx, qword [rbp]
mov rax, qword [rbp + 0x80]
mov r8, qword [rax]
mov qword [rbp - 0x10], r8
mov rcx, r8
sub rcx, rdx
mov qword [rbp - 8], rcx
mov rax, rcx
xor rax, r8
cmp rax, 0
setl al
xor rcx, rdx
cmp rcx, 0xffffffffffffffff
setg cl
and al, cl
test al, 1
jne 0x1400966b8
jmp 0x1400966ca
sub rsp, 0x20
call fcn.140008d37
add rsp, 0x20
jmp 0x140096791
mov rcx, qword [rbp - 8]
mov rdx, qword [rbp - 0x10]
cmp rcx, 0xffffffffffffffff
setg al
cmp rcx, rdx
setl dl
mov cl, al
xor cl, dl
xor cl, 0xff
or al, dl
and al, cl
test al, 1
jne 0x140096726
mov rcx, qword [rbp - 8]
mov rdx, qword [rbp - 0x10]
movabs rax, 0x4a5bad644415bd6
movabs r8, 0xfb5a4529bbbea429
xor rax, r8
add rdx, rax
sub rsp, 0x20
call fcn.140012b72
add rsp, 0x20
jmp 0x140096791
mov rcx, qword [rbp - 8]
mov rax, qword [rbp + 0x70]
mov rax, qword [rax]
mov al, byte [rax + rcx + 8]
mov byte [rbp - 0x11], al
sub al, 0x2f
je 0x140096755
jmp 0x140096745
mov al, byte [rbp - 0x11]
sub al, 0x5c
jne 0x140096796
jmp 0x140096755
mov rcx, qword [rbp + 0x80]
mov rax, qword [0x140258578]
mov qword [rbp + 0xd8], rax
mov rax, qword [0x140258580]
mov qword [rbp + 0xe0], rax
lea rdx, [rbp + 0xd8]
sub rsp, 0x20
call fcn.140013d6a
add rsp, 0x20
jmp 0x140096804
jmp 0x140096ccd
mov ax, 0x5b58
xor ax, 0x5bad
mov word [rbp + 0xd6], ax
lea rcx, [rbp + 0xd6]
sub rsp, 0x20
call fcn.140064b20
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x98]
mov qword [rbp - 0x20], rcx
cmp byte [rax], 0
jne 0x1400967ff
mov rdx, qword [rbp + 0x50]
mov rcx, qword [rbp + 0x80]
mov rax, qword [rbp - 0x20]
mov r8, qword [rax]
mov qword [rdx], r8
mov rax, qword [rax + 8]
mov qword [rdx + 8], rax
sub rsp, 0x20
call fcn.140018beb
add rsp, 0x20
jmp 0x140096804
jmp 0x140096ccd
sub rsp, 0x20
mov cx, 0x3a3
call fcn.14006580e
mov rcx, qword [rbp + 0x98]
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp + 0x80]
mov cl, byte [rcx]
mov rax, qword [rax]
sub rax, rdx
setne al
test cl, cl
movzx ecx, al
mov eax, ecx
lea ecx, [rax + rax*8]
mov eax, 2
cmove eax, ecx
mov dword [rbp - 0x24], eax
test eax, eax
je 0x140096ccd
jmp 0x140096853
mov eax, dword [rbp - 0x24]
sub eax, 2
je 0x140096ccd
jmp 0x140096864
mov eax, dword [rbp - 0x24]
sub eax, 9
jne 0x140096df4
jmp 0x140096875
mov eax, dword [0x1402458f8]
mov ecx, 0xf8746d77
xor ecx, 0x845a8c1f
xor eax, ecx
xor edx, edx
div dword [0x1402458fc]
mov ecx, eax
mov edx, 0xe428c3ec
xor edx, 0x1bd73c13
mov eax, ecx
xor eax, edx
mov edx, ecx
xor edx, 0xffffffff
or eax, edx
and eax, 0x5354a9d2
xor eax, 0xffffffff
mov edx, 0xb18843f9
xor edx, 0xe2dcea2b
mov r8d, 0x829b30c1
xor r8d, 0x7d64cf3e
xor edx, r8d
mov r8d, 0x7fd5ad09
xor r8d, 0x2c8104db
mov r9d, 0x7f9bfae8
xor r9d, 0x80640517
xor r8d, r9d
or edx, r8d
and ecx, edx
xor ecx, 0xffffffff
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0xae908d9c
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov edx, 0x25e8af1b
xor edx, 0xa4c7e0cf
mov r8d, 0x8d1c9e81
xor r8d, 0x72e3617e
xor edx, r8d
or eax, edx
xor ecx, 0xffffffff
mov edx, 0xa8e379ee
xor edx, 0x29cc363a
mov r8d, 0xea8df3f3
xor r8d, 0x15720c0c
xor edx, r8d
or ecx, edx
and eax, ecx
mov ecx, 0x80e3f4d7
xor ecx, 0x7f1c0b28
xor eax, ecx
mov ecx, 0x7997f1c1
xor ecx, 0x9a512ca9
cmp eax, ecx
jae 0x140096e01
mov eax, dword [0x140245900]
xor edx, edx
div dword [0x140245904]
mov ecx, 0x444e1595
xor ecx, 0x1b748613
sub eax, ecx
add eax, 0x28b2db35
add eax, 0x5f3a9386
mov ecx, 0xfadee6e9
xor ecx, 0xfadee6e9
mov edx, 0xc1928c20
xor edx, 0xac9a447f
sub ecx, edx
add eax, ecx
and eax, 0xcf0bc3f2
mov dword [rbp - 0x34], eax
mov eax, 0x58bc5dd2
xor eax, 0xd8237eb5
mov dword [rbp - 0x38], eax
mov cx, 0x46e8
xor cx, 0x4425
sub rsp, 0x20
call fcn.14006580e
mov rdx, qword [rbp + 0x98]
mov ecx, dword [rbp - 0x38]
add rsp, 0x20
mov r8, rax
mov eax, dword [rbp - 0x34]
mov qword [rbp - 0x30], r8
cmp byte [rdx], 0
sete dl
mov byte [rbp - 0x25], dl
cmp eax, ecx
jb 0x140096967
mov al, byte [rbp - 0x25]
test al, 1
jne 0x140096a06
jmp 0x140096ccd
mov rax, qword [rbp - 0x30]
mov rcx, qword [rbp + 0x190]
mov qword [rbp - 0x40], rcx
cmp rax, rcx
jl 0x140096a31
mov rax, qword [rbp + 0x80]
mov rax, qword [rax]
mov qword [rbp - 0x48], rax
jmp 0x140096c10
mov cx, 0xeafc
xor cx, 0xed4a
sub rsp, 0x20
call fcn.14006580e
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x98]
mov qword [rbp - 0x50], rcx
cmp byte [rax], 0
jne 0x140096ccd
mov rcx, qword [rbp - 0x50]
mov rax, qword [rbp + 0x80]
mov rax, qword [rax]
cmp rax, rcx
mov qword [rbp - 0x48], rax
jne 0x140096c10
mov ecx, 0x249
sub rsp, 0x20
call fcn.14006580e
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x98]
mov qword [rbp - 0x58], rcx
cmp byte [rax], 0
jne 0x140096ccd
mov rcx, qword [rbp - 0x58]
mov rdx, qword [rbp + 0x80]
test rcx, rcx
setns al
mov rdx, qword [rdx]
mov qword [rbp - 0x60], rdx
sub rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x140096b88
mov eax, dword [0x140245908]
mov ecx, dword [0x14024590c]
mov edx, 0x669f0374
xor edx, 0xcdd5cda4
xor ecx, edx
or eax, ecx
mov ecx, 0x258f4f97
xor ecx, 0x646a9f84
xor edx, edx
div ecx
sub eax, 0xcb82f71c
or eax, 0x237679fa
mov ecx, 0x740ca5d4
xor ecx, 0x3b1dcb50
cmp eax, ecx
ja 0x140096e0a
mov rcx, qword [rbp - 0x58]
mov rdx, qword [rbp - 0x60]
mov eax, dword [0x140245910]
xor eax, dword [0x140245914]
mov r8d, 0xa52a5f4b
xor r8d, 0x12362364
xor eax, r8d
imul eax, eax, 0x5011193d
mov r8d, 0x739574f9
xor r8d, 0xbda331e9
or eax, r8d
mov dword [rbp - 0x64], eax
movabs rax, 0x1c8cee0b61ea46c0
movabs r8, 0xe37311f49e15b93f
xor rax, r8
add rdx, rax
sub rsp, 0x20
call fcn.140012b72
mov eax, dword [rbp - 0x64]
add rsp, 0x20
cmp eax, 0xb465ea6d
jbe 0x140096b11
jmp 0x140096ccd
mov rcx, qword [rbp - 0x58]
mov rax, qword [rbp + 0x70]
mov rax, qword [rax]
mov al, byte [rax + rcx + 8]
mov byte [rbp - 0x65], al
sub al, 0x2f
je 0x140096bc0
jmp 0x140096ba7
mov rax, qword [rbp - 0x60]
mov cl, byte [rbp - 0x65]
sub cl, 0x5c
mov qword [rbp - 0x48], rax
jne 0x140096c10
jmp 0x140096bc0
mov rcx, qword [rbp + 0x80]
mov rax, qword [rbp + 0x190]
mov qword [rbp + 0xc0], rax
mov rax, qword [rbp + 0x198]
mov qword [rbp + 0xc8], rax
lea rdx, [rbp + 0xc0]
sub rsp, 0x20
call fcn.140013d6a
add rsp, 0x20
lea rcx, [rbp + 0x190]
sub rsp, 0x20
call fcn.140010ae7
add rsp, 0x20
jmp 0x140096ccd
mov rcx, qword [rbp + 0x60]
mov rax, qword [rbp - 0x40]
mov rdx, qword [rbp - 0x48]
mov qword [rcx], 0
mov qword [rcx + 8], 0
add rdx, rax
sub rsp, 0x20
call fcn.140019920
mov rdx, qword [rbp + 0x68]
mov rcx, qword [rbp + 0x60]
add rsp, 0x20
mov rax, qword [rbp + 0x190]
mov qword [rdx], rax
mov rax, qword [rbp + 0x198]
mov qword [rdx + 8], rax
sub rsp, 0x20
call fcn.140097240
mov rcx, qword [rbp + 0x60]
mov rax, qword [rbp + 0x80]
add rsp, 0x20
mov rdx, qword [rax]
mov qword [rbp + 0xb0], rdx
mov rax, qword [rax + 8]
mov qword [rbp + 0xb8], rax
lea rdx, [rbp + 0xb0]
sub rsp, 0x20
call fcn.140097240
mov rax, qword [rbp + 0x60]
mov rcx, qword [rbp + 0x80]
add rsp, 0x20
mov rdx, qword [rax]
mov qword [rbp + 0xa0], rdx
mov rax, qword [rax + 8]
mov qword [rbp + 0xa8], rax
lea rdx, [rbp + 0xa0]
sub rsp, 0x20
call fcn.140013d6a
add rsp, 0x20
mov rax, qword [rbp + 0x90]
mov rcx, qword [rbp + 0x98]
mov dl, byte [rcx]
mov byte [rbp - 0x71], dl
mov byte [rcx], 0
mov rax, qword [rax]
mov qword [rbp - 0x70], rax
cmp rax, 0
je 0x140096d70
mov rax, qword [rbp - 0x70]
mov rcx, qword [rax]
mov rax, rcx
xor rax, 0xffffffffffffffff
mov rdx, 0xffffffffffffffff
movabs r8, 0x4000000000000000
xor rdx, r8
or rax, rdx
xor rcx, 0xffffffffffffffff
mov rdx, 0xffffffffffffffff
movabs r8, 0x4000000000000000
xor rdx, r8
or rcx, rdx
movabs rdx, 0xe7a4500255a6f884
movabs r8, 0x185baffdaa59077b
xor rdx, r8
xor rax, rdx
xor rcx, 0xffffffffffffffff
or rax, rcx
cmp rax, 0
jne 0x140096d70
mov rcx, qword [rbp - 0x70]
sub rsp, 0x20
call fcn.14000f4df
add rsp, 0x20
mov rax, qword [rbp + 0x88]
mov rax, qword [rax]
mov qword [rbp - 0x80], rax
cmp rax, 0
je 0x140096dc4
mov rax, qword [rbp - 0x80]
mov rax, qword [rax]
movabs rcx, 0x13db8c602170e868
movabs rdx, 0x53db8c602170e868
xor rcx, rdx
and rax, rcx
cmp rax, 0
jne 0x140096dc4
mov rcx, qword [rbp - 0x80]
sub rsp, 0x20
call fcn.14000f4df
add rsp, 0x20
lea rcx, [rbp + 0x1a0]
sub rsp, 0x20
call fcn.140062840
mov rax, qword [rbp + 0x98]
add rsp, 0x20
cmp byte [rax], 0
jne 0x140096df4
mov rax, qword [rbp + 0x98]
mov cl, byte [rbp - 0x71]
mov byte [rax], cl
mov rax, qword [rbp + 0x38]
lea rsp, [rbp + 0x1c0]
pop rbp
ret
sbb al, bh
imul ecx
pop rbp
sti
invalid
push rsp
xor byte [rax + riz*2], bh
jmp 0x140096b11