Function at 0x14009c710
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x128
mov qword [rsp + 0xb8], rcx
call fcn.14009d3cb
mov qword [rsp + 0xc0], rax
call fcn.14009d3cb
mov rcx, rax
mov rax, qword [rsp + 0xc0]
add rcx, 0x60
mov qword [rsp + 0xc8], rcx
mov rcx, rax
add rcx, 0x2b71
mov qword [rsp + 0xd0], rcx
cmp byte [rax + 0x2b71], 0
jne 0x14009ccb7
mov eax, dword [0x1401dc6c8]
mov ecx, dword [0x1401dc6cc]
add eax, 0xf35460fc
sub eax, ecx
sub eax, 0xf35460fc
mov ecx, 0x6d52c29f
xor edx, edx
div ecx
add eax, 0x6c41652b
mov ecx, 0xfc917d9
xor ecx, 0xfdc1c0b
add eax, ecx
mov ecx, 0xee7581f4
xor ecx, 0x8234e4df
sub eax, ecx
mov ecx, 0xffffffff
xor ecx, 0x55e68e42
add eax, ecx
add eax, 1
mov ecx, 0x24ab4c18
xor ecx, 0x3e6b578a
cmp eax, ecx
jb 0x14009d38c
mov eax, dword [0x1401dc6d0]
xor edx, edx
div dword [0x1401dc6d4]
mov ecx, eax
xor ecx, 0x9866b2ed
mov eax, ecx
and eax, eax
mov edx, 0x636d0724
xor edx, 0x9c92f8db
xor eax, edx
mov edx, 0xd1e595c2
xor edx, 0x5946913f
and eax, edx
xor eax, 0xffffffff
mov edx, 0xb690613f
xor edx, 0x3e3365c2
mov r8d, 0xaa88be11
xor r8d, 0x222bbaec
and edx, r8d
mov r8d, 0x9987071
xor r8d, 0xf6678f8e
xor edx, r8d
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
mov edx, 0x58244554
xor edx, 0xa7dbbaab
xor eax, edx
xor ecx, 0xffffffff
or eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 0x18fcaa52
mov edx, 0xffffffff
xor edx, 0x18fcaa52
and eax, edx
sub eax, ecx
mov dword [rsp + 0xb4], eax
call fcn.14009d3cb
mov eax, dword [rsp + 0xb4]
cmp eax, 0xa019a4c8
jb 0x14009c7ca
xor eax, eax
mov qword [rsp + 0xa8], rax
jmp 0x14009c88d
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0xa0], rax
mov r8d, dword [0x1401dc6d8]
mov edx, dword [0x1401dc6dc]
xor edx, 0x93fd0b44
mov ecx, 0x9dad28fa
xor ecx, 0x6252d705
mov eax, r8d
xor eax, ecx
and eax, 0xdbbae898
mov r9d, 0xffffffff
xor r9d, 0xdbbae898
and r8d, r9d
mov r10d, 0x468b62bd
xor r10d, 0xb9749d42
mov ecx, edx
xor ecx, r10d
and ecx, 0xdbbae898
and edx, r9d
or eax, r8d
or ecx, edx
xor eax, ecx
mov edx, 0x2efe6781
xor edx, 0xd101987e
mov ecx, eax
xor ecx, edx
mov edx, 0x918f3b71
xor edx, 0x291102b6
and edx, ecx
mov r8d, 0xb9e1d95
xor r8d, 0xb3002452
mov ecx, 0x72c0b6c4
xor ecx, 0x8d3f493b
xor r8d, ecx
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0xb89e39c7
or eax, 0xb89e39c7
imul eax, edx
add eax, ecx
mov ecx, 0x68b909ea
xor edx, edx
div ecx
mov ecx, 0xcbf8568
xor ecx, 0x37e5a5d
xor edx, edx
div ecx
mov ecx, 0x217fc0c5
xor ecx, 0x5dce35e5
cmp eax, ecx
je 0x14009d395
mov rcx, qword [rsp + 0xa0]
mov edx, dword [0x1401dc6e0]
xor edx, 0x3ee31713
imul edx, dword [0x1401dc6e4]
xor eax, eax
sub eax, edx
xor edx, edx
sub edx, 0x92dea6e9
add eax, edx
xor edx, edx
sub edx, eax
mov eax, edx
and eax, 0x8ce53a62
shl eax, 1
add edx, 0x8ce53a62
sub edx, eax
mov r8d, 0x8a3b8d67
xor r8d, 0x8697f6fc
mov eax, edx
and eax, r8d
mov r8d, 0x54db8701
xor r8d, 0x5877fc9a
xor edx, r8d
or eax, edx
cmp rcx, 0x30
sete cl
mov byte [rsp + 0x9f], cl
cmp eax, 0xd9d2982c
je 0x14009c973
mov al, byte [rsp + 0x9f]
test al, 1
jne 0x14009ca24
jmp 0x14009ca03
mov rax, qword [rsp + 0xa0]
mov byte [rsp + rax + 0xf8], 0
add rax, 1
mov qword [rsp + 0xa8], rax
jmp 0x14009c88d
mov eax, dword [0x1401dc6e8]
mov r8d, dword [0x1401dc6ec]
mov edx, 0x49b5f62e
xor edx, 0xb64a09d1
mov ecx, eax
xor ecx, edx
mov edx, r8d
and edx, ecx
mov r9d, r8d
xor r9d, 0xffffffff
mov ecx, eax
and ecx, r9d
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0x3a1e0a07
mov r8d, 0xffffffff
xor r8d, 0x3a1e0a07
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x3a1e0a07
or eax, 0x3a1e0a07
imul eax, edx
add eax, ecx
mov edx, 0x65559a0a
xor edx, 0x65559a0b
mov ecx, eax
add ecx, edx
mov edx, 0x74467bf
xor edx, 0xf8bb9840
xor eax, edx
or eax, 0x33c900ab
add eax, ecx
mov ecx, 0xf21d3a2a
xor ecx, 0x9187977b
sub eax, ecx
sub eax, 0xd5adc6af
mov ecx, 0xfb042da4
xor ecx, 0x989e80f5
add eax, ecx
cmp eax, 0x606787ce
je 0x14009d39e
mov ecx, dword [0x1401dc6f0]
mov eax, dword [0x1401dc6f4]
add ecx, 0x5d55e9f
sub ecx, eax
mov eax, 0x40e9c83
xor eax, 0x1dbc21c
sub ecx, eax
mov edx, 0x9822b28b
xor edx, 0x67dd4d74
mov eax, ecx
xor eax, edx
mov edx, 0xc1c8f102
xor edx, 0xe5a13bd7
mov r8d, 0xb5f857d3
xor r8d, 0x4a07a82c
xor edx, r8d
or eax, edx
and ecx, 0x2469cad5
xor ecx, 0xffffffff
mov edx, 0xc42c3abd
xor edx, 0x3bd3c542
xor eax, edx
mov edx, 0x749570cd
xor edx, 0x8b6a8f32
xor ecx, edx
or eax, ecx
mov ecx, 0x10f443b1
xor ecx, 0xc3e90b2e
xor edx, edx
div ecx
mov ecx, 0xffffffff
xor ecx, 0xbb523267
add eax, ecx
add eax, 1
mov dword [rsp + 0x98], eax
mov ecx, 4
lea rdx, [rsp + 0xf8]
call fcn.1400994d0
mov rcx, qword [rsp + 0xc8]
mov eax, dword [rsp + 0x98]
cmp byte [rcx], 0
sete cl
mov byte [rsp + 0x9e], cl
cmp eax, 0x1fefdb90
jbe 0x14009d39e
mov al, byte [rsp + 0x9e]
test al, 1
jne 0x14009cbc4
jmp 0x14009cc01
mov rcx, qword [rsp + 0xc0]
add rcx, 0x2b40
lea rdx, [rsp + 0xf8]
call fcn.140099220
mov rax, qword [rsp + 0xc8]
cmp byte [rax], 0
jne 0x14009cc01
mov rax, qword [rsp + 0xd0]
mov byte [rax], 1
jmp 0x14009ce39
mov eax, dword [0x1401dc6f8]
mov edx, dword [0x1401dc6fc]
xor edx, 0xaa2caec2
mov ecx, edx
and ecx, eax
xor ecx, 0xffffffff
add eax, edx
add eax, 1
add eax, ecx
and eax, 0xeced2d11
mov ecx, 0x57aeed0a
xor edx, edx
div ecx
xor ecx, ecx
sub ecx, 0xe40c46f6
add eax, ecx
cmp eax, 0x73d08ad3
jae 0x14009d3a7
mov eax, dword [0x1401dc700]
mov ecx, dword [0x1401dc704]
mov edx, 0xb7e4b78
xor edx, 0xc26b6661
xor ecx, edx
imul eax, ecx
and eax, 0x2bf6c980
and eax, 0xdae57ee7
mov r8d, 0x81338a31
xor r8d, 0x634d46ce
mov ecx, 0x8790d83d
xor ecx, 0x786f27c2
xor r8d, ecx
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0xe27eccff
or eax, 0xe27eccff
imul eax, edx
add eax, ecx
cmp eax, 0x29963da4
jae 0x14009d3a7
jmp 0x14009d37f
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0xc0]
add rcx, 0x2b40
mov qword [rsp + 0x90], rcx
mov al, byte [rax]
mov cl, 0xdb
xor cl, 0xdb
cmp al, cl
jne 0x14009d37f
mov eax, dword [0x1401dc708]
mov r8d, dword [0x1401dc70c]
mov ecx, 0x81e7b040
xor ecx, 0x7e184fbf
mov r9d, r8d
xor r9d, ecx
mov edx, eax
and edx, r9d
mov ecx, eax
or ecx, r9d
mov r9d, 0x85e79456
xor r9d, 0x7a186ba9
xor ecx, r9d
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0x6aef3750
mov r8d, 0xffffffff
xor r8d, 0x6aef3750
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x6aef3750
mov r8d, 0x6c91665d
xor r8d, 0x67e510d
or eax, r8d
imul eax, edx
add eax, ecx
imul ecx, eax, 0xbbc9f8d0
mov eax, ecx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xf919f402
or eax, edx
and ecx, 0xf919f402
mov edx, 0xda611d29
xor edx, 0x259ee2d6
xor ecx, edx
and eax, ecx
xor eax, 0xffffffff
cmp eax, 0xbc79226
jae 0x14009d3b0
mov rcx, qword [rsp + 0xc0]
mov eax, dword [0x1401dc710]
xor eax, 0x2417988f
xor edx, edx
div dword [0x1401dc714]
add eax, 0x4ced3783
mov r8d, 0xe375d6a3
xor edx, edx
div r8d
mov edx, 0xcbd47cb3
xor edx, 0x602e88fc
xor eax, edx
cmp qword [rcx + 0x2b60], 0x80
setg cl
mov byte [rsp + 0x8f], cl
cmp eax, 0x282d83a6
je 0x14009cda5
mov al, byte [rsp + 0x8f]
test al, 1
jne 0x14009ce11
jmp 0x14009ce39
mov rcx, qword [rsp + 0x90]
mov edx, 0x40
xor eax, eax
mov r8d, eax
call fcn.140099810
mov rax, qword [rsp + 0xc8]
cmp byte [rax], 0
jne 0x14009d37f
mov rcx, qword [rsp + 0xc0]
mov rax, qword [rsp + 0xb8]
mov rdx, qword [rax]
mov qword [rsp + 0xe8], rdx
mov rax, qword [rax + 8]
mov qword [rsp + 0xf0], rax
add rcx, 0x2b40
mov qword [rsp + 0x80], rcx
lea rdx, [rsp + 0xe8]
call fcn.14009b0ba
mov rax, qword [rsp + 0xc8]
cmp byte [rax], 0
jne 0x14009d37f
call fcn.14009d3cb
mov rcx, qword [rsp + 0xc0]
mov rcx, qword [rcx + 0x2b60]
mov qword [rsp + 0x78], rcx
mov al, byte [rax + 0x60]
mov cl, 0x26
xor cl, 0x26
cmp al, cl
jne 0x14009d330
mov r8, qword [rsp + 0x78]
mov rax, r8
add rax, 0xffffffffffffffff
mov qword [rsp + 0x70], rax
movabs rcx, 0xd37e1f117c0fffdb
movabs rdx, 0x2c81e0ee83f00024
xor rcx, rdx
mov rdx, rax
xor rdx, rcx
movabs rcx, 0x97ff389d7c822382
movabs r9, 0x36731072d50f4e37
xor rcx, r9
and rcx, rdx
mov r10, 0xffffffffffffffff
movabs rdx, 0xa18c28efa98d6db5
xor r10, rdx
mov r9, rax
and r9, r10
movabs r11, 0x6c7b4968df0ac0f8
movabs rdx, 0x9384b69720f53f07
xor r11, rdx
mov rdx, r8
xor rdx, r11
movabs r11, 0xa18c28efa98d6db5
and rdx, r11
and r8, r10
or rcx, r9
or rdx, r8
xor rcx, rdx
cmp rcx, 0
setl cl
movabs rdx, 0x45710b1ec35a4c3b
movabs r8, 0xba8ef4e13ca5b3c4
xor rdx, r8
cmp rax, rdx
setg al
and al, cl
test al, 1
jne 0x14009cf81
jmp 0x14009d055
mov eax, dword [0x1401dc718]
mov ecx, dword [0x1401dc71c]
sub eax, 0x8e8617a1
add eax, ecx
mov ecx, 0x3b48215e
xor ecx, 0xb5ce36ff
add eax, ecx
or eax, 0x1cd2d664
mov ecx, 0x4f719f10
xor ecx, 0xe1f2191e
sub eax, ecx
xor ecx, ecx
sub ecx, 0x7c24d3e2
sub eax, ecx
mov ecx, 0x92abc862
xor ecx, 0xf62a4b92
cmp eax, ecx
je 0x14009d3b9
mov eax, dword [0x1401dc720]
mov ecx, 0x997cd555
xor ecx, 0x28487c16
xor eax, ecx
mov ecx, dword [0x1401dc724]
mov r8d, eax
xor r8d, 0xffffffff
mov edx, ecx
and edx, r8d
mov r8d, 0x5da59cfb
xor r8d, 0xa25a6304
xor ecx, r8d
and eax, ecx
or edx, eax
and edx, 0x2dd65a50
sub edx, 0x7aabc0e5
mov ecx, edx
xor ecx, 0x915a15af
mov eax, 0xffffffff
xor eax, 0x915a15af
and edx, eax
mov eax, 0x9a0c0c71
xor eax, 0x9a0c0c73
imul eax, edx
sub eax, ecx
mov dword [rsp + 0x6c], eax
call fcn.140007bb8
mov eax, dword [rsp + 0x6c]
cmp eax, 0xdfce7452
jb 0x14009d3b9
jmp 0x14009d330
mov rax, qword [rsp + 0x78]
movabs rcx, 0x8000000000000000
cmp rax, rcx
jne 0x14009d0ed
mov ecx, 0x40
mov edx, 8
call fcn.140012010
mov rcx, rax
mov rax, qword [0x1401ee760]
mov qword [rcx], rax
lea rax, [0x1401ecbf9]
mov qword [rcx + 0x10], rax
mov rax, qword [0x1401ecc28]
mov qword [rcx + 0x18], rax
mov rax, qword [0x1401ecc30]
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
movabs rax, 0x2cb0cb976b0956b0
movabs rdx, 0x2cb0cb971ec3e9db
xor rax, rdx
lea rdx, [0x1401ecbf9]
lea r8, [0x1401ecc05]
lea r9, [0x1401ecc08]
mov qword [rsp + 0x20], rax
call fcn.140011f4f
jmp 0x14009d330
mov rax, qword [rsp + 0x70]
cmp rax, 0
jge 0x14009d18d
movabs rcx, 0xb3d2d91706ed59c6
movabs rax, 0xb3d2d91706ed5986
xor rcx, rax
movabs rdx, 0xfdcba64524375465
movabs rax, 0xfdcba6452437546d
xor rdx, rax
call fcn.140012010
mov rcx, rax
mov rax, qword [0x1401ee760]
mov qword [rcx], rax
lea rax, [0x1401ecbf9]
mov qword [rcx + 0x10], rax
mov rax, qword [0x1401ecc28]
mov qword [rcx + 0x18], rax
mov rax, qword [0x1401ecc30]
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
lea rdx, [0x1401ecbf9]
lea r8, [0x1401ecc05]
lea r9, [0x1401ecc08]
mov qword [rsp + 0x20], 0x328e4386
call fcn.140011f4f
jmp 0x14009d330
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0xc0]
mov r8, qword [rcx + 0x2b50]
mov rdx, r8
add rdx, rax
mov qword [rsp + 0x60], rdx
mov rcx, rdx
xor rcx, r8
xor rdx, rax
mov rax, rcx
xor rax, 0xffffffffffffffff
mov r8, rdx
xor r8, 0xffffffffffffffff
or rax, r8
and rcx, rdx
movabs rdx, 0x888aca89f97072d9
movabs r8, 0x77753576068f8d26
xor rdx, r8
xor rcx, rdx
xor rax, 0xffffffffffffffff
movabs rdx, 0x4d56703a1460d7
movabs r8, 0xffb2a98fc5eb9f28
xor rdx, r8
xor rcx, rdx
or rax, rcx
cmp rax, 0
jge 0x14009d218
call fcn.140007bb8
jmp 0x14009d330
mov rdx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x60]
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rax + 0x2b68]
mov rax, rcx
not rax
or rax, r8
add rcx, rax
inc rcx
mov qword [rsp + 0x50], rcx
setns al
mov rdx, qword [rdx]
mov qword [rsp + 0x58], rdx
sub rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x14009d30c
mov eax, dword [0x1401dc728]
sub eax, dword [0x1401dc72c]
mov ecx, 0x891c9ea9
xor edx, edx
div ecx
mov ecx, 0xff2c0d55
xor edx, edx
div ecx
mov ecx, 0x7528ff60
xor edx, edx
div ecx
cmp eax, 0x2ec40138
jae 0x14009d3c2
mov rcx, qword [rsp + 0x50]
mov eax, dword [0x1401dc730]
mov edx, dword [0x1401dc734]
mov r8d, 0x3fe1ab21
xor r8d, 0x49d5cf39
add eax, r8d
add eax, edx
sub eax, 0x76346418
mov r8d, 0x6597970f
xor edx, edx
div r8d
mov rdx, qword [rsp + 0x58]
and eax, 0x30e21e78
or eax, 0x46cd6206
mov dword [rsp + 0x4c], eax
mov eax, 0x5d1b6c02
xor eax, 0x694e2ab8
mov dword [rsp + 0x48], eax
xor eax, eax
sub rax, 0xffffffffffffffff
sub rdx, rax
call fcn.140012270
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x4c]
cmp eax, ecx
jbe 0x14009d295
jmp 0x14009d330
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0xc0]
mov rax, qword [rax + 0x2b48]
add rax, 8
shl rcx, 4
add rax, rcx
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0xc8]
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0x38], rcx
mov al, byte [rax]
mov cl, 0x9a
xor cl, 0x9a
cmp al, cl
jne 0x14009d37f
mov rax, qword [rsp + 0x38]
mov rcx, qword [rax]
mov qword [rsp + 0xd8], rcx
mov rax, qword [rax + 8]
mov qword [rsp + 0xe0], rax
lea rcx, [rsp + 0xd8]
call fcn.14009d3d9
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
add rsp, 0x128
ret
invalid
mov byte [rbp - 0x5b], dh
invalid
ret
invalid
pop rdi
retf 0x4b12
test al, 0x8a
mov al, 0x43
jmp 0x14009cfd0
push rbp
cmp byte [rdx - 0x76], bl
jmp 0x14009d295