Function at 0x14018a830
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r14
push rsi
push rdi
push rbx
sub rsp, 0x110
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x38], rdx
mov qword [rbp + 0x30], rcx
mov qword [rbp + 0x20], rcx
mov eax, 0x10
call fcn.14024abd0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x28], rax
sub rsp, 0x20
call fcn.14019ba7e
mov rcx, qword [rbp + 0x30]
mov rdx, qword [rbp + 0x38]
add rsp, 0x20
add rax, 0x50
mov qword [rbp + 0x40], rax
mov qword [rcx], 0
mov rax, rcx
add rax, 8
mov qword [rbp + 0x48], rax
mov qword [rcx + 8], 0
mov rcx, qword [rdx]
mov qword [rbp + 0x50], rcx
movabs rax, 0x40a2dd6dd8f5cfbc
movabs rdx, 0x40a2dd6dd8f5cfbc
xor rax, rdx
cmp rcx, rax
sete al
xor rcx, 0xffffffffffffffff
movabs r8, 0xf4b1a6eb70f58371
movabs rdx, 0xf4b1a6eb70f58370
xor r8, rdx
movabs rdx, 0x284b8e9410238a2a
movabs r9, 0xd7b4716befdc75d5
xor rdx, r9
xor r8, rdx
mov rdx, 0xffffffffffffffff
movabs r9, 0x11a9eab12050d16
xor rdx, r9
or rcx, r8
movabs r8, 0x11a9eab12050d16
or rdx, r8
xor rcx, 0xffffffffffffffff
and rcx, rdx
movabs rdx, 0xb4957c1b6481e215
movabs r8, 0xb4957c1b6481e215
xor rdx, r8
cmp rcx, rdx
setne cl
or al, cl
test al, 1
jne 0x14018a94c
jmp 0x14018a9dc
mov ecx, 0x40
mov edx, 8
sub rsp, 0x20
call fcn.140012610
add rsp, 0x20
mov rcx, rax
mov rax, qword [0x140264780]
mov qword [rcx], rax
lea rax, [0x140263cf8]
mov qword [rcx + 0x10], rax
mov rax, qword [0x140263d38]
mov qword [rcx + 0x18], rax
mov rax, qword [str.x_]
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
movabs rax, 0xe9f083a4ec8fbb96
movabs rdx, 0xe9f083a4bee5545c
xor rax, rdx
lea rdx, [0x140263cf8]
lea r8, [0x140263d03]
lea r9, [0x140263c43]
sub rsp, 0x30
mov qword [rsp + 0x20], rax
call fcn.14001203f
add rsp, 0x30
jmp 0x14018b39a
mov rax, qword [rbp + 0x50]
cmp rax, 0xffffffffffffffff
jge 0x14018aa64
mov rcx, qword [rbp + 0x50]
movabs rax, 0xddc54da06137985b
add rax, 0
sub rax, rcx
movabs rcx, 0xddc54da06137985b
sub rax, rcx
movabs rcx, 0x67472bc34a4fdd49
movabs rdx, 0x67472bc34a4fdd48
xor rcx, rdx
shr rax, cl
movabs rcx, 0xfb6198a8d875fea
movabs rdx, 0xfb6198a8d875fea
xor rcx, rdx
sub rcx, rax
add rcx, 0
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
sub rsp, 0x20
call fcn.14000d792
add rsp, 0x20
jmp 0x14018b39a
mov rcx, qword [rbp + 0x30]
mov rdx, qword [rbp + 0x50]
shr rdx, 1
sub rsp, 0x20
call fcn.140018a7a
mov rax, qword [rbp + 0x28]
add rsp, 0x20
lea rcx, [rbp + 0x68]
add rcx, 8
mov qword [rbp - 8], rcx
add rax, 8
mov qword [rbp], rax
lea rax, [rbp + 0x58]
add rax, 8
mov qword [rbp + 8], rax
xor eax, eax
mov rcx, rax
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rax
mov rax, qword [rbp + 0x10]
mov rcx, qword [rbp + 0x18]
mov qword [rbp - 0x18], rcx
mov qword [rbp - 0x10], rax
mov eax, dword [0x140255b40]
add eax, dword [0x140255b44]
mov ecx, 0x45e5d297
xor edx, edx
div ecx
mov ecx, eax
xor ecx, 0xffffffff
mov edx, eax
xor edx, 0xffffffff
and ecx, edx
mov edx, 0x801fc2f9
xor edx, 0x4dcc6b63
mov r8d, 0x882effbf
xor r8d, 0x77d10040
xor edx, r8d
mov r8d, 0x134c9c45
xor r8d, 0xde9f35df
mov r9d, 0x4ea37d0
xor r9d, 0xfb15c82f
xor r8d, r9d
and edx, r8d
xor ecx, 0xffffffff
mov r8d, 0xc6d78829
xor r8d, 0x392877d6
xor edx, r8d
and ecx, edx
mov edx, 0xdcd14e51
xor edx, 0x232eb1ae
xor eax, edx
mov edx, 0xffffffff
xor edx, 0xcdd3a99a
and eax, edx
or ecx, eax
xor ecx, 0xffffffff
mov eax, ecx
xor eax, 0xffffffff
and eax, 0xa9c15f91
mov edx, 0xffffffff
xor edx, 0xa9c15f91
and ecx, edx
or eax, ecx
cmp eax, 0xb0d23a2e
jae 0x14018b527
mov rcx, qword [rbp - 0x18]
mov rdx, qword [rbp + 0x38]
mov r10d, dword [0x140255b48]
and r10d, dword [0x140255b4c]
mov r8d, r10d
xor r8d, 0xffffffff
mov eax, 0xd8faaf04
xor eax, 0xf1be31e2
and eax, r8d
mov r11d, 0xffffffff
xor r11d, 0x29449ee6
and r10d, r11d
mov r8d, 0xffffffff
xor r8d, 0x2fe93d5
mov r9d, 0x9583c978
xor r9d, 0xbcc7579e
and r8d, r9d
mov r9d, 0x3443b12b
xor r9d, 0x36bd22fe
and r9d, r11d
or eax, r10d
or r8d, r9d
xor eax, r8d
mov r8d, 0x5c49697b
xor r8d, 0xdcd72ca6
sub eax, r8d
mov r8d, 0x45e64d71
xor r8d, 0x81d357f5
xor eax, r8d
cmp rcx, qword [rdx]
setl cl
mov byte [rbp - 0x19], cl
cmp eax, 0x2e9c9946
jbe 0x14018ab72
mov al, byte [rbp - 0x19]
test al, 1
jne 0x14018ac26
jmp 0x14018b380
mov eax, dword [0x140255b50]
and eax, dword [0x140255b54]
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0x82e75880
xor edx, 0x7e7e5bd4
and edx, ecx
mov r8d, 0xffffffff
xor r8d, 0xfc990354
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov r8d, 0x13d1f7ec
xor r8d, 0xef48f4b8
mov edx, eax
and edx, r8d
or eax, 0xfc990354
imul eax, edx
add eax, ecx
mov ecx, eax
and ecx, 0x7fa6f66e
shl ecx, 1
mov edx, 0x54bae0d6
xor edx, 0x2b1c16b8
xor eax, edx
add eax, ecx
imul eax, eax, 0x30bb0b94
cmp eax, 0x29fba29f
jbe 0x14018b530
mov rcx, qword [rbp + 0x28]
mov r8, qword [rbp - 0x18]
mov r9, qword [rbp + 0x38]
mov eax, dword [0x140255b58]
mov r11d, dword [0x140255b5c]
mov edx, 0xaaefd72d
xor edx, 0x551028d2
mov esi, r11d
xor esi, edx
mov r10d, eax
and r10d, esi
mov edx, eax
or edx, esi
mov esi, 0x46e247ab
xor esi, 0xb91db854
xor edx, esi
imul edx, r10d
mov r10d, eax
and r10d, r11d
or eax, r11d
imul eax, r10d
add eax, edx
mov r10d, 0x5a26edf4
xor edx, edx
div r10d
mov edx, eax
mov rax, qword [rbp - 8]
or edx, 0x6c22be35
xor edx, 0xecbb553e
mov dword [rbp - 0x34], edx
mov edx, 0x378b9327
xor edx, 0x29ac093e
mov dword [rbp - 0x38], edx
mov r10, r8
xor r10, 0xffffffffffffffff
movabs rsi, 0xf14da34a1ca3bfce
movabs rdx, 0xf14da34a1ca3bfcf
xor rsi, rdx
movabs rdx, 0xbf7637ab0fc7b894
movabs r11, 0x4089c854f038476b
xor rdx, r11
xor rsi, rdx
movabs r11, 0xa8328f43acfe1d93
movabs rdx, 0x599b694541ff0eb8
xor r11, rdx
movabs rdx, 0x12f8920fbae8544f
movabs rdi, 0xed076df04517abb0
xor rdx, rdi
xor r11, rdx
movabs rdi, 0x198161a7aa3bca30
movabs rdx, 0xe82887a1473ad91b
xor rdi, rdx
mov rdx, r10
and rdx, rdi
mov r14, r8
and r14, r11
movabs rbx, 0xf1a9e606ed01132b
mov rdi, rsi
and rdi, rbx
mov rbx, r11
and rbx, 1
or rdx, r14
or rdi, rbx
xor rdx, rdi
or r10, rsi
xor r10, 0xffffffffffffffff
movabs rsi, 0xf1a9e606ed01132b
or r11, rsi
and r10, r11
or rdx, r10
mov r10, qword [r9]
mov qword [rbp + 0x78], r10
mov r9, qword [r9 + 8]
mov qword [rbp + 0x80], r9
mov qword [rbp + 0x68], r8
mov qword [rax], rdx
lea rdx, [rbp + 0x78]
lea r8, [rbp + 0x68]
sub rsp, 0x20
call fcn.1401816a0
mov r9, qword [rbp + 0x28]
mov r8, qword [rbp]
mov rdx, qword [rbp + 0x40]
mov ecx, dword [rbp - 0x38]
mov eax, dword [rbp - 0x34]
add rsp, 0x20
mov r9, qword [r9]
mov qword [rbp - 0x30], r9
mov r8, qword [r8]
mov qword [rbp - 0x28], r8
cmp byte [rdx], 0
sete dl
mov byte [rbp - 0x1a], dl
cmp eax, ecx
jbe 0x14018b530
mov al, byte [rbp - 0x1a]
test al, 1
jne 0x14018ae56
jmp 0x14018b380
mov eax, dword [0x140255b60]
mov r8d, dword [0x140255b64]
mov r9d, r8d
xor r9d, 0xffffffff
mov edx, eax
and edx, r9d
mov ecx, eax
or ecx, r9d
mov r9d, 0x388c6424
xor r9d, 0xc7739bdb
xor ecx, r9d
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
imul eax, eax, 0x305a8f2b
add eax, 0x2cfaf8dd
and eax, eax
xor eax, 0xffffffff
mov ecx, 0x243926f7
and ecx, 0x243926f7
mov edx, 0xf546073b
xor edx, 0xab9f8c4
xor ecx, edx
and eax, ecx
xor eax, 0xffffffff
cmp eax, 0xbf90397d
jae 0x14018b539
mov rax, qword [rbp + 8]
mov rcx, qword [rbp - 0x28]
mov rdx, qword [rbp - 0x30]
mov r8d, dword [0x140255b68]
xor r8d, 0x22abd888
sub r8d, dword [0x140255b6c]
mov r9d, 0x9de95ac9
xor r9d, 0xcf34d1e6
add r8d, r9d
mov r9d, 0xdc5812b4
xor r9d, 0x712bb09
sub r8d, r9d
sub r8d, 0x52dd8b2f
or r8d, 0x49f031ab
sub r8d, 0xba34abe1
mov dword [rbp - 0x40], r8d
mov r8d, 0x7609728d
xor r8d, 0x9136e146
mov dword [rbp - 0x44], r8d
mov byte [rbp + 0x8f], 0
mov qword [rbp + 0x58], rdx
mov qword [rax], rcx
lea rcx, [rbp + 0x58]
lea rdx, [rbp + 0x8f]
xor eax, eax
mov r9d, eax
sub rsp, 0x20
mov r8, r9
call fcn.14003678c
mov rdx, qword [rbp + 0x40]
mov ecx, dword [rbp - 0x44]
add rsp, 0x20
mov eax, dword [rbp - 0x40]
cmp byte [rdx], 0
sete dl
mov byte [rbp - 0x39], dl
cmp eax, ecx
ja 0x14018aecc
mov al, byte [rbp - 0x39]
test al, 1
jne 0x14018af90
jmp 0x14018b380
mov eax, dword [0x140255b70]
mov r8d, dword [0x140255b74]
mov ecx, eax
xor ecx, 0xffffffff
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 ecx, 0xdc85fd6
xor edx, edx
div ecx
mov ecx, 0xee430f04
xor ecx, 0x1548239d
or eax, ecx
mov ecx, 0x540d3fd0
xor edx, edx
div ecx
cmp eax, 0x85bf7d98
jae 0x14018b542
mov r8, qword [rbp + 0x30]
mov eax, dword [0x140255b78]
xor edx, edx
div dword [0x140255b7c]
mov rdx, qword [rbp - 0x10]
mov r9d, eax
mov ecx, r9d
xor ecx, 0x423e1709
mov eax, 0xffffffff
xor eax, 0x423e1709
and r9d, eax
mov eax, 0x471246c3
xor eax, 0x471246c1
imul eax, r9d
sub eax, ecx
and eax, 0xb1b4c391
xor eax, 0x6ff8cbc5
mov ecx, 0x138407b2
xor ecx, 0x84fde538
mov r8, qword [r8]
mov qword [rbp - 0x50], r8
cmp rdx, r8
setl dl
mov byte [rbp - 0x45], dl
cmp eax, ecx
jb 0x14018afed
mov al, byte [rbp - 0x45]
test al, 1
jne 0x14018b09d
jmp 0x14018b069
mov rcx, qword [rbp - 0x10]
mov rdx, qword [rbp - 0x50]
movabs rax, 0x88421dbdd99d1ab0
movabs r8, 0x77bde2422662e54f
xor rax, r8
add rdx, rax
sub rsp, 0x20
call fcn.14001284c
add rsp, 0x20
jmp 0x14018b380
mov rcx, qword [rbp + 0x30]
sub rsp, 0x20
call fcn.14018b55d
mov rax, qword [rbp + 0x48]
mov rdx, qword [rbp - 0x10]
mov rcx, qword [rbp - 0x18]
add rsp, 0x20
mov r8b, byte [rbp + 0x8f]
mov rax, qword [rax]
mov byte [rax + rdx + 8], r8b
movabs rdx, 0x79baba30b6633456
movabs rax, 0x79baba30b6633454
xor rdx, rax
mov rax, rcx
add rax, rdx
mov qword [rbp - 0x58], rax
xor rcx, 0xffffffffffffffff
and rax, rcx
movabs rcx, 0x6d89f2db1eda73c8
movabs rdx, 0x6d89f2db1eda73c8
xor rcx, rdx
cmp rax, rcx
jge 0x14018b123
sub rsp, 0x20
call fcn.140008c92
add rsp, 0x20
jmp 0x14018b380
mov eax, dword [0x140255b80]
mov r8d, dword [0x140255b84]
mov ecx, 0x71e4eb4b
xor ecx, 0x9484a2db
xor r8d, ecx
mov ecx, eax
xor ecx, 0xffffffff
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 ecx, eax
xor ecx, 0xffffffff
mov edx, 0xa716e13b
xor edx, 0xc9acb9ac
and edx, ecx
mov r8d, 0xffffffff
xor r8d, 0x6eba5897
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov r8d, 0x36806d6
xor r8d, 0x6dd25e41
mov edx, eax
and edx, r8d
or eax, 0x6eba5897
imul eax, edx
add eax, ecx
add eax, 0x85113a95
mov ecx, 0x50bdb374
xor ecx, 0x126f4200
add eax, ecx
sub eax, 0x85113a95
mov ecx, 0x5d909438
xor ecx, 0x42175f50
xor edx, edx
div ecx
mov ecx, 0x8ebb56a4
xor ecx, 0x749d3c4d
cmp eax, ecx
ja 0x14018b54b
mov rdx, qword [rbp - 0x28]
mov r8, qword [rbp - 0x10]
mov eax, dword [0x140255b88]
mov ecx, 0x29c0fcd5
xor ecx, 0x44f6cdce
xor eax, ecx
imul eax, dword [0x140255b8c]
mov r9d, eax
xor r9d, 0xffffffff
and r9d, 0x25384838
mov r10d, 0x6599a9e4
xor r10d, 0x40a1e1dc
mov ecx, 0xf3803b70
xor ecx, 0xc7fc48f
xor r10d, ecx
mov ecx, eax
and ecx, r10d
imul ecx, r9d
mov r9d, eax
and r9d, 0x25384838
or eax, 0x25384838
imul eax, r9d
add eax, ecx
mov r9d, eax
xor r9d, 0xffffffff
and r9d, 0x7a32f45a
mov r10d, 0xffffffff
xor r10d, 0x7a32f45a
mov ecx, eax
and ecx, r10d
imul ecx, r9d
mov r9d, eax
and r9d, 0x7a32f45a
or eax, 0x7a32f45a
imul eax, r9d
add eax, ecx
mov ecx, 0x817c89bf
xor ecx, 0x6cd5dbe3
sub eax, ecx
add eax, 0xaf1461d7
add eax, 0xeda9525c
mov ecx, 0x9acd440d
xor ecx, 0x134ab743
mov r9, 0xffffffffffffffff
xor r9, 1
xor r10d, r10d
sub r10, 1
sub r9, r10
sub r8, r9
mov qword [rbp - 0x68], r8
cmp rdx, 0
sete dl
mov byte [rbp - 0x59], dl
cmp eax, ecx
jbe 0x14018b54b
mov al, byte [rbp - 0x59]
test al, 1
jne 0x14018b385
jmp 0x14018b2e2
mov rax, qword [rbp - 0x28]
mov rcx, qword [rax]
mov rax, rcx
xor rax, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
and rax, rcx
mov rcx, 0xffffffffffffffff
movabs rdx, 0x4000000000000000
xor rcx, rdx
movabs rdx, 0xfa0a69a8c7e1ba67
movabs r8, 0xba0a69a8c7e1ba67
xor rdx, r8
movabs r8, 0x809e1f3ceb268e15
movabs r9, 0x7f61e0c314d971ea
xor r8, r9
xor rdx, r8
and rcx, rdx
movabs rdx, 0x7f625fb9ec2a9f8d
movabs r8, 0x809da04613d56072
xor rdx, r8
xor rax, rdx
xor rcx, 0xffffffffffffffff
and rax, rcx
cmp rax, 0
jne 0x14018b385
mov rcx, qword [rbp - 0x28]
sub rsp, 0x20
call fcn.14000eec9
add rsp, 0x20
jmp 0x14018b385
jmp 0x14018b39a
mov rax, qword [rbp - 0x58]
mov rcx, qword [rbp - 0x68]
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rax
jmp 0x14018aaae
mov eax, dword [0x140255b90]
mov edx, dword [0x140255b94]
mov ecx, eax
add ecx, 1
xor eax, 0xffffffff
or eax, edx
add eax, ecx
mov ecx, 0x3fd1995f
xor ecx, 0x4651ad64
and eax, ecx
and eax, eax
xor eax, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0x55d852e8
mov edx, 0xffffffff
xor edx, 0x55d852e8
or ecx, edx
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0xc03f4af3
xor ecx, 0xd4979ff9
or eax, ecx
cmp eax, 0x6fd210e2
je 0x14018b554
mov eax, dword [0x140255b98]
mov ecx, dword [0x140255b9c]
mov edx, 0x5c79f0bb
xor edx, 0x4ad2e67a
xor ecx, edx
add eax, ecx
imul eax, eax, 0x7cfbabb
mov ecx, 0xcb67cdf7
xor edx, edx
div ecx
mov rdx, qword [rbp + 0x38]
mov ecx, 0x3d7712e8
xor ecx, 0xc288ed17
mov r8d, eax
xor r8d, ecx
and r8d, 0x5136aaf1
mov r9d, 0x62889cb1
xor r9d, 0x33be3640
mov ecx, 0x33d8b2a8
xor ecx, 0xcc274d57
xor r9d, ecx
mov ecx, eax
and ecx, r9d
imul ecx, r8d
mov r8d, eax
and r8d, 0x5136aaf1
or eax, 0x5136aaf1
imul eax, r8d
add eax, ecx
mov ecx, 0x345c1947
xor ecx, 0xfad53068
mov rdx, qword [rdx + 8]
mov qword [rbp - 0x78], rdx
cmp rdx, 0
sete dl
mov byte [rbp - 0x69], dl
cmp eax, ecx
je 0x14018b3fc
mov al, byte [rbp - 0x69]
test al, 1
jne 0x14018b515
jmp 0x14018b4b0
mov rax, qword [rbp - 0x78]
mov rax, qword [rax]
or rax, rax
xor rax, 0xffffffffffffffff
movabs rcx, 0x4000000000000000
movabs rdx, 0x4000000000000000
or rcx, rdx
add byte [rax], al
add byte [rax], al
add byte [rax + 0x48], al
or ecx, edx
xor rcx, 0xffffffffffffffff
xor rax, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
and rax, rcx
movabs rcx, 0x91a3693db73df732
movabs rdx, 0x91a3693db73df732
xor rcx, rdx
cmp rax, rcx
jne 0x14018b515
mov rcx, qword [rbp - 0x78]
sub rsp, 0x20
call fcn.14000eec9
add rsp, 0x20
mov rax, qword [rbp + 0x20]
lea rsp, [rbp + 0x90]
pop rbx
pop rdi
pop rsi
pop r14
pop rbp
ret
pushfq
jb 0x14018b528
loop 0x14018b515
idiv dil
jmp rbx
jrcxz 0x14018b581
invalid
lodsb al, byte [rsi]
jo 0x14018b4cc
and cl, ch
mov bh, cl
invalid
invalid
add cl, byte [rax - 0x74]
pop rbx
jmp 0x14018b1e0
cmpsd dword [rsi], dword [rdi]
out 0x37, al
add cl, ch
lahf
invalid