Function at 0x14016a650
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
sub rsp, 0x388
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x178], rdx
mov qword [rbp + 0x168], rcx
mov qword [rbp + 0x120], rcx
mov eax, 0x10
mov qword [rbp + 0x150], rax
call fcn.1401f0aa0
sub rsp, rax
mov rax, qword [rbp + 0x150]
mov rcx, rsp
mov qword [rbp + 0x128], rcx
call fcn.1401f0aa0
sub rsp, rax
mov rax, qword [rbp + 0x150]
mov rcx, rsp
mov qword [rbp + 0x130], rcx
call fcn.1401f0aa0
sub rsp, rax
mov rax, qword [rbp + 0x150]
mov rcx, rsp
mov qword [rbp + 0x138], rcx
call fcn.1401f0aa0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x140], rax
mov eax, 0x20
call fcn.1401f0aa0
sub rsp, rax
mov rax, qword [rbp + 0x150]
mov rcx, rsp
mov qword [rbp + 0x148], rcx
call fcn.1401f0aa0
sub rsp, rax
mov rax, qword [rbp + 0x150]
mov rcx, rsp
mov qword [rbp + 0x158], rcx
call fcn.1401f0aa0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x160], rax
sub rsp, 0x20
call fcn.14017940c
mov rcx, qword [rbp + 0x168]
add rsp, 0x20
mov qword [rbp + 0x190], rax
add rax, 0x60
mov qword [rbp + 0x170], rax
movabs rdx, 0x51741fd81ac7f7b0
movabs rax, 0x51741fd81ac7f7a8
xor rdx, rax
sub rsp, 0x20
call fcn.14016a3c0
mov rdx, qword [rbp + 0x178]
add rsp, 0x20
mov qword [rbp + 0x2f8], 0
lea rax, [rbp + 0x2f8]
add rax, 8
mov qword [rbp + 0x180], rax
mov qword [rbp + 0x300], 0
movabs rax, 0xab050f4a1767c476
movabs rcx, 0xab050f4a1767c476
xor rax, rcx
mov qword [rbp + 0x2e8], rax
lea rax, [rbp + 0x2e8]
add rax, 8
mov qword [rbp + 0x188], rax
mov qword [rbp + 0x2f0], 0
mov rax, qword [rdx]
mov qword [rbp + 0x2d8], rax
mov rax, qword [rdx + 8]
mov qword [rbp + 0x2e0], rax
lea rcx, [rbp + 0x2f8]
lea rdx, [rbp + 0x2d8]
sub rsp, 0x20
call fcn.14001d789
add rsp, 0x20
mov dl, 0xb8
xor dl, 0xe4
lea rcx, [rbp + 0x2f8]
sub rsp, 0x20
call fcn.14004e7a0
mov rax, qword [rbp + 0x190]
add rsp, 0x20
mov cl, byte [rax + 0x60]
mov dl, 0x1d
xor dl, 0x1d
xor eax, eax
cmp cl, dl
mov rcx, rax
mov qword [rbp + 0x198], rcx
mov qword [rbp + 0x1a0], rax
jne 0x14016bb84
mov rdx, qword [rbp + 0x128]
mov rax, qword [rbp + 0x2f8]
mov qword [rdx], rax
mov rax, qword [rbp + 0x300]
mov qword [rdx + 8], rax
lea rcx, [rbp + 0x2c8]
mov r8d, 0x5c
mov r9, 0xffffffffffffffff
sub rsp, 0x20
call fcn.140047a20
mov rdx, qword [rbp + 0x170]
add rsp, 0x20
mov rcx, qword [rbp + 0x2c8]
mov qword [rbp + 0x110], rcx
mov rax, qword [rbp + 0x2d0]
mov qword [rbp + 0x118], rax
cmp byte [rdx], 0
mov qword [rbp + 0x198], rcx
mov qword [rbp + 0x1a0], rax
jne 0x14016bb84
mov ecx, dword [0x1401fb840]
imul ecx, dword [0x1401fb844]
mov edx, 0x38d80b66
xor edx, 0x6a28d9d8
mov eax, ecx
and eax, edx
mov edx, 0xf7a7c552
xor edx, 0xa55717ec
xor ecx, edx
or eax, ecx
mov ecx, 0x4745092f
xor ecx, 0x37a77ea
add eax, ecx
mov ecx, 0xd3ed3cc4
xor ecx, 0x2c12c33b
xor eax, ecx
mov edx, 0xffffffff
xor edx, 0x3b6638c0
mov ecx, 0xffffffff
xor ecx, 0x3cb994be
or eax, edx
or ecx, 0x3cb994be
mov edx, 0xcda700b2
xor edx, 0x3258ff4d
xor eax, edx
and eax, ecx
mov ecx, 0xa4e45d1d
xor ecx, 0xf72e42ca
cmp eax, ecx
ja 0x14016bccc
mov eax, dword [0x1401fb848]
mov edx, dword [0x1401fb84c]
xor edx, 0xb7d46c0a
xor ecx, ecx
sub ecx, edx
add eax, ecx
mov ecx, 0xecdeb1d2
xor ecx, 0xa1d84cee
add eax, ecx
mov ecx, 0x10c393bd
xor edx, edx
div ecx
mov ecx, 0x183a0a69
xor edx, edx
div ecx
mov dword [rbp + 0xfc], eax
mov rax, qword [0x140207e60]
mov qword [rbp + 0x2e8], rax
mov rax, qword [str.___]
mov qword [rbp + 0x2f0], rax
mov ecx, 0x6c7
sub rsp, 0x20
call fcn.14006d5fc
mov rcx, qword [rbp + 0x170]
add rsp, 0x20
mov rdx, rax
mov eax, dword [rbp + 0xfc]
mov qword [rbp + 0x100], rdx
mov cl, byte [rcx]
mov dl, 0x32
xor dl, 0x32
cmp cl, dl
sete cl
mov byte [rbp + 0x10f], cl
cmp eax, 0xe32897b9
je 0x14016bccc
mov cl, byte [rbp + 0x10f]
xor eax, eax
test cl, 1
mov qword [rbp + 0xf0], rax
jne 0x14016aa07
jmp 0x14016ad70
mov r9, qword [rbp + 0x100]
mov r8, qword [rbp + 0x110]
mov rcx, qword [rbp + 0x118]
mov rdx, rcx
add rdx, 8
xor eax, eax
cmp rcx, 0
cmove rdx, rax
mov qword [rbp + 0xd8], rdx
lea rcx, [rbp + 0x2b8]
sub rsp, 0x20
call fcn.14016bd20
mov rcx, qword [rbp + 0x170]
add rsp, 0x20
mov rax, qword [rbp + 0x2b8]
mov qword [rbp + 0xe0], rax
mov rax, qword [rbp + 0x2c0]
mov qword [rbp + 0xe8], rax
xor eax, eax
cmp byte [rcx], 0
mov qword [rbp + 0xf0], rax
jne 0x14016ad70
mov rcx, qword [rbp + 0x130]
mov word [rcx], 0x791
sub rsp, 0x20
call fcn.14006d720
mov rcx, qword [rbp + 0x170]
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp + 0xe8]
mov qword [rbp + 0xd0], rdx
cmp byte [rcx], 0
mov qword [rbp + 0xf0], rax
jne 0x14016ad70
mov rax, qword [rbp + 0xe0]
mov rdx, qword [rbp + 0xd0]
mov rcx, qword [rdx]
mov rdx, qword [rdx + 8]
mov qword [rbp + 0xc8], rdx
cmp rax, rcx
jne 0x14016adf5
mov rax, qword [rbp + 0xe0]
cmp rax, 0
je 0x14016abb0
mov rcx, qword [rbp + 0xe0]
mov rax, qword [rbp + 0xc8]
mov rdx, qword [rbp + 0xe8]
add rdx, 8
mov qword [rbp + 0xa8], rdx
add rax, 8
mov qword [rbp + 0xb0], rax
xor eax, eax
test rcx, rcx
cmovg rax, rcx
mov qword [rbp + 0xb8], rax
xor eax, eax
mov qword [rbp + 0xc0], rax
mov rcx, qword [rbp + 0xb8]
mov rax, qword [rbp + 0xc0]
mov qword [rbp + 0xa0], rax
cmp rax, rcx
je 0x14016abb0
mov rax, qword [rbp + 0xa0]
mov rdx, qword [rbp + 0xb0]
mov rcx, qword [rbp + 0xa8]
mov cl, byte [rcx + rax]
mov dl, byte [rdx + rax]
movabs r8, 0x42e1d7751919d489
add rax, r8
add rax, 1
movabs r8, 0xca2842649d37f1ac
movabs r9, 0x88c99511842e2525
xor r8, r9
sub rax, r8
cmp cl, dl
mov qword [rbp + 0xc0], rax
je 0x14016ab38
jmp 0x14016adf5
mov cx, 0x7e1e
xor cx, 0x77a4
sub rsp, 0x20
call fcn.14006d5fc
mov rcx, qword [rbp + 0x170]
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp + 0xe8]
mov qword [rbp + 0x98], rdx
cmp byte [rcx], 0
mov qword [rbp + 0xf0], rax
jne 0x14016ad70
mov eax, dword [0x1401fb850]
mov ecx, dword [0x1401fb854]
add eax, 0x747b8d81
add eax, ecx
sub eax, 0x747b8d81
sub eax, 0x8e9b9e9e
sub eax, 0xabcffa58
add eax, 0x8e9b9e9e
and eax, 0x26a4703d
xor ecx, ecx
sub ecx, 0x42ec0271
add eax, ecx
mov ecx, 0x29ee505e
xor ecx, 0x95784168
cmp eax, ecx
je 0x14016bcd5
mov r9, qword [rbp + 0x98]
mov r8, qword [rbp + 0x110]
mov rdx, qword [rbp + 0xd8]
mov eax, dword [0x1401fb858]
xor eax, 0xe244d6b6
mov ecx, dword [0x1401fb85c]
xor ecx, 0xa2f60f21
imul eax, ecx
add eax, 0xe8589af7
mov ecx, 0x2b83f2eb
xor ecx, 0x6f596614
add eax, ecx
sub eax, 0xe8589af7
sub eax, 0x82750ddd
mov r10d, 0xdc36cb83
xor r10d, 0x23c9347c
mov ecx, eax
xor ecx, r10d
mov r10d, 0xb4364d2e
xor r10d, 0x14dc0
and ecx, r10d
mov r10d, 0xffffffff
xor r10d, 0xb43700ee
and eax, r10d
sub eax, ecx
mov dword [rbp + 0x7c], eax
lea rcx, [rbp + 0x2a8]
sub rsp, 0x20
call fcn.14016bd20
mov rcx, qword [rbp + 0x170]
mov eax, dword [rbp + 0x7c]
add rsp, 0x20
mov rdx, qword [rbp + 0x2a8]
mov qword [rbp + 0x80], rdx
mov rdx, qword [rbp + 0x2b0]
mov qword [rbp + 0x88], rdx
mov cl, byte [rcx]
mov dl, 0x2b
xor dl, 0x2b
cmp cl, dl
sete cl
mov byte [rbp + 0x97], cl
cmp eax, 0xc563bc44
ja 0x14016bcd5
mov rax, qword [rbp + 0xe8]
mov cl, byte [rbp + 0x97]
test cl, 1
mov qword [rbp + 0xf0], rax
jne 0x14016ad32
jmp 0x14016ad70
mov rdx, qword [rbp + 0x138]
mov rax, qword [rbp + 0x88]
mov rcx, qword [rbp + 0x80]
mov qword [rdx], rcx
mov qword [rdx + 8], rax
lea rcx, [rbp + 0x2e8]
sub rsp, 0x20
call fcn.140017ca0
mov rax, qword [rbp + 0xe8]
add rsp, 0x20
mov qword [rbp + 0xf0], rax
mov rax, qword [rbp + 0xf0]
mov qword [rbp + 0x70], rax
mov eax, dword [0x1401fb860]
add eax, dword [0x1401fb864]
mov ecx, 0x8b4a13c8
xor edx, edx
div ecx
add eax, 0x8bec4cb6
and eax, 0x77e36947
cmp eax, 0x465a7b33
jae 0x14016bcde
mov eax, dword [0x1401fb868]
mov ecx, dword [0x1401fb86c]
xor ecx, 0x320369c
sub eax, ecx
mov ecx, 0x361c0079
xor ecx, 0xf9bd5414
and eax, ecx
sub eax, 0x2328d46c
xor ecx, ecx
sub ecx, 0xfce839f1
sub eax, ecx
mov ecx, 0xbed320c3
xor ecx, 0xded56fc9
cmp eax, ecx
jbe 0x14016ada5
mov rax, qword [rbp + 0x70]
mov qword [rbp + 0x68], rax
jmp 0x14016afca
mov ecx, 0x27
sub rsp, 0x20
call fcn.14006d5fc
mov rcx, qword [rbp + 0x170]
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp + 0xe8]
mov qword [rbp + 0x60], rdx
cmp byte [rcx], 0
mov qword [rbp + 0x68], rax
jne 0x14016afca
mov eax, dword [0x1401fb870]
add eax, dword [0x1401fb874]
add eax, 0xb378adb7
sub eax, 0xd8377cd0
mov ecx, 0xc1b13335
xor ecx, 0xa84ec7b7
add eax, ecx
mov ecx, 0x57d7c907
xor ecx, 0x8fe0b5d7
add eax, ecx
mov ecx, 0xffffffff
xor ecx, 0x88b4d3ee
mov edx, 0x9a3c3d30
xor edx, 0x9a3c3d30
mov r8d, 0xf198cfa7
xor r8d, 0xf198cfa6
sub edx, r8d
sub ecx, edx
sub eax, ecx
cmp eax, 0x722fe9a6
je 0x14016bce7
mov r9, qword [rbp + 0x60]
mov r8, qword [rbp + 0x110]
mov rdx, qword [rbp + 0xd8]
mov ecx, dword [0x1401fb878]
imul ecx, dword [0x1401fb87c]
mov eax, 0xbe31d272
xor eax, 0x41ce2d8d
mov r10d, ecx
xor r10d, eax
mov eax, 0x5344434d
xor eax, 0xd536676f
and eax, r10d
mov r10d, 0xc5a5430c
xor r10d, 0x43d7672e
mov r11d, 0x8ec9ba0
xor r11d, 0xf713645f
xor r10d, r11d
and ecx, r10d
or eax, ecx
mov ecx, 0xd3560325
xor ecx, 0x366ef284
sub eax, ecx
sub eax, 0xd8682996
mov ecx, 0xe831c773
xor ecx, 0xd0936d2
add eax, ecx
mov ecx, 0x4e5b90f
xor ecx, 0x4e5b90f
mov r10d, 0x59b88faf
xor r10d, 0xadaf8280
sub ecx, r10d
sub eax, ecx
mov dword [rbp + 0x44], eax
lea rcx, [rbp + 0x298]
sub rsp, 0x20
call fcn.14016bd20
mov rcx, qword [rbp + 0x170]
mov eax, dword [rbp + 0x44]
add rsp, 0x20
mov rdx, qword [rbp + 0x298]
mov qword [rbp + 0x48], rdx
mov rdx, qword [rbp + 0x2a0]
mov qword [rbp + 0x50], rdx
mov cl, byte [rcx]
mov dl, 0xe2
xor dl, 0xe2
cmp cl, dl
sete cl
mov byte [rbp + 0x5f], cl
cmp eax, 0x245d6c66
jbe 0x14016ae8e
mov rax, qword [rbp + 0xe8]
mov cl, byte [rbp + 0x5f]
test cl, 1
mov qword [rbp + 0x68], rax
jne 0x14016af95
jmp 0x14016afca
mov rdx, qword [rbp + 0x140]
mov rax, qword [rbp + 0x50]
mov rcx, qword [rbp + 0x48]
mov qword [rdx], rcx
mov qword [rdx + 8], rax
lea rcx, [rbp + 0x2e8]
sub rsp, 0x20
call fcn.140017ca0
mov rax, qword [rbp + 0xe8]
add rsp, 0x20
mov qword [rbp + 0x68], rax
mov rax, qword [rbp + 0x68]
mov qword [rbp + 0x38], rax
cmp rax, 0
je 0x14016b02e
mov rax, qword [rbp + 0x38]
mov rax, qword [rax]
movabs rcx, 0xb3099561902ccbb1
movabs rdx, 0xf3099561902ccbb1
xor rcx, rdx
and rax, rcx
movabs rcx, 0x386cffd1deaddcc7
movabs rdx, 0x386cffd1deaddcc7
xor rcx, rdx
cmp rax, rcx
jne 0x14016b02e
mov rcx, qword [rbp + 0x38]
sub rsp, 0x20
call fcn.140011305
add rsp, 0x20
mov rax, qword [rbp + 0x170]
cmp byte [rax], 0
je 0x14016b32d
mov rax, qword [rbp + 0x170]
mov rcx, qword [rbp + 0x148]
mov dl, 0xda
xor dl, 0xda
mov byte [rax], dl
mov edx, 0x18
sub rsp, 0x20
call fcn.14016a3c0
mov rcx, qword [rbp + 0x148]
call fcn.14016a5c3
mov rax, qword [rbp + 0x170]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14016b30c
mov eax, dword [0x1401fb880]
mov edx, dword [0x1401fb884]
xor eax, 0xffffffff
xor edx, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0x134a5278
or eax, edx
or ecx, 0x134a5278
xor eax, 0xffffffff
and eax, ecx
sub eax, 0xae97bd79
add eax, 0x3331eb1a
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0x8324320b
xor edx, 0xf1d42e92
and ecx, edx
mov edx, 0xffffffff
xor edx, 0x72f01c99
and eax, edx
sub eax, ecx
mov ecx, 0x229177e3
xor ecx, 0x94ea87ec
cmp eax, ecx
ja 0x14016bcf0
mov r8, qword [rbp + 0x168]
mov r9, qword [rbp + 0x148]
mov eax, dword [0x1401fb888]
mov edx, dword [0x1401fb88c]
xor edx, 0xda0a9ad7
mov r10d, 0xafe026d0
xor r10d, 0xafe026d1
mov ecx, eax
add ecx, r10d
xor eax, 0xffffffff
or eax, edx
add eax, ecx
mov ecx, 0xda1d8b52
xor ecx, 0xd2c330ad
xor edx, edx
div ecx
mov rdx, qword [rbp + 0x188]
mov ecx, eax
mov eax, ecx
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0xffffffff
xor ecx, 0xd31dd77c
mov r10d, 0xffffffff
xor r10d, 0xd31dd77c
and ecx, r10d
mov r10d, 0x2cc4e499
xor r10d, 0xd33b1b66
xor eax, r10d
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0x220a9a1f
xor ecx, 0xb2505c04
or eax, ecx
mov ecx, 0x9da0212f
xor ecx, 0x252fb4f3
mov r10, qword [r9]
mov qword [r8], r10
mov r10, qword [r9 + 8]
mov qword [r8 + 8], r10
mov r9, qword [r9 + 0x10]
mov qword [r8 + 0x10], r9
mov rdx, qword [rdx]
mov qword [rbp + 0x28], rdx
cmp rdx, 0
sete dl
mov byte [rbp + 0x37], dl
cmp eax, ecx
jae 0x14016bcf0
mov al, byte [rbp + 0x37]
test al, 1
jne 0x14016b286
jmp 0x14016b1cb
mov rax, qword [rbp + 0x28]
mov rax, qword [rax]
movabs rcx, 0x922465ee08fbc79f
movabs rdx, 0x6ddb9a11f7043860
xor rcx, rdx
xor rax, rcx
movabs rcx, 0xa85ce4a70739250
movabs rdx, 0x4a85ce4a70739250
xor rcx, rdx
movabs rdx, 0x29fa19b1ea625c51
movabs r8, 0xd605e64e159da3ae
xor rdx, r8
xor rcx, rdx
mov rdx, 0xffffffffffffffff
movabs r8, 0xdd8c0ea539def418
xor rdx, r8
or rax, rcx
movabs rcx, 0x688f092361ab1888
movabs r8, 0xb50307865875ec90
xor rcx, r8
or rcx, rdx
xor rax, 0xffffffffffffffff
and rax, rcx
movabs rcx, 0xa67be718c3ce671
movabs rdx, 0xa67be718c3ce671
xor rcx, rdx
cmp rax, rcx
jne 0x14016b286
mov rcx, qword [rbp + 0x28]
sub rsp, 0x20
call fcn.140011305
add rsp, 0x20
mov rax, qword [rbp + 0x118]
mov rcx, qword [rbp + 0x110]
mov qword [rbp + 0x288], rcx
mov qword [rbp + 0x290], rax
lea rcx, [rbp + 0x288]
sub rsp, 0x20
call fcn.14001ca00
mov rax, qword [rbp + 0x180]
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp + 0x20], rax
cmp rax, 0
je 0x14016b2fa
mov rcx, qword [rbp + 0x20]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
cmp rax, 0
jne 0x14016b2fa
mov rcx, qword [rbp + 0x20]
sub rsp, 0x20
call fcn.140011305
add rsp, 0x20
sub rsp, 0x20
call fcn.14016bf50
add rsp, 0x20
jmp 0x14016bcbb
mov rax, qword [rbp + 0x118]
mov rcx, qword [rbp + 0x110]
mov qword [rbp + 0x198], rcx
mov qword [rbp + 0x1a0], rax
jmp 0x14016bb84
mov ecx, 0xa68
sub rsp, 0x20
call fcn.14006d5fc
mov rdx, qword [rbp + 0x170]
mov rcx, qword [rbp + 0x110]
add rsp, 0x20
mov r8, rax
mov rax, qword [rbp + 0x118]
mov qword [rbp + 0x18], r8
mov dl, byte [rdx]
mov r8b, 0x6f
xor r8b, 0x6f
cmp dl, r8b
mov qword [rbp + 0x198], rcx
mov qword [rbp + 0x1a0], rax
jne 0x14016bb84
mov eax, dword [0x1401fb890]
mov ecx, dword [0x1401fb894]
add eax, 0xb82ec790
add eax, ecx
sub eax, 0xb82ec790
add eax, 0x38d7ff
mov ecx, eax
add ecx, 1
xor eax, 0xffffffff
or eax, 0xb8f9a4c
add eax, ecx
or eax, 0xb1223d9e
cmp eax, 0x3e4d5f09
jb 0x14016bcf9
mov r8, qword [rbp + 0x18]
mov ecx, dword [0x1401fb898]
mov edx, dword [0x1401fb89c]
mov eax, 0x9c121bd8
xor eax, 0x5af3b87b
xor edx, eax
mov eax, ecx
and eax, edx
xor ecx, edx
or eax, ecx
and eax, 0x5040e496
and eax, 0xd9b3d7da
add eax, 0x870b9f25
mov dword [rbp + 4], eax
mov eax, 0xe325ec72
xor eax, 0xd1a6eeef
mov dword [rbp], eax
mov rcx, qword [0x140279d08]
mov rax, qword [rbp + 0x2e8]
mov qword [rbp + 0x278], rax
mov rax, qword [rbp + 0x2f0]
mov qword [rbp + 0x280], rax
lea rdx, [rbp + 0x278]
sub rsp, 0x20
call fcn.140065673
mov rdx, qword [rbp + 0x170]
mov ecx, dword [rbp]
add rsp, 0x20
mov r8, rax
mov eax, dword [rbp + 4]
mov qword [rbp + 8], r8
cmp byte [rdx], 0
sete dl
mov byte [rbp + 0x17], dl
cmp eax, ecx
jbe 0x14016bcf9
mov rax, qword [rbp + 0x118]
mov rcx, qword [rbp + 0x110]
mov dl, byte [rbp + 0x17]
test dl, 1
mov qword [rbp + 0x198], rcx
mov qword [rbp + 0x1a0], rax
jne 0x14016b483
jmp 0x14016bb84
mov eax, dword [0x1401fb8a0]
xor eax, 0x4e3977ef
mov ecx, dword [0x1401fb8a4]
xor ecx, 0xe17685f3
xor eax, ecx
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 0x235751cd
mov edx, 0xffffffff
xor edx, 0x235751cd
and eax, edx
sub eax, ecx
xor ecx, ecx
sub ecx, 0x190b7387
add eax, ecx
add eax, 0x6e6f56c7
cmp eax, 0x4c13d06f
jbe 0x14016bd02
mov eax, dword [0x1401fb8a8]
mov r8d, dword [0x1401fb8ac]
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, 0x849ad7ff
xor edx, edx
div ecx
add eax, 0xe823d716
mov ecx, 0xc1b4b0ad
xor edx, edx
div ecx
mov dword [rbp - 0x14], eax
mov ecx, 0x65
sub rsp, 0x20
call fcn.14006d5fc
mov rcx, qword [rbp + 0x170]
add rsp, 0x20
mov rdx, rax
mov eax, dword [rbp - 0x14]
mov qword [rbp - 0x10], rdx
cmp byte [rcx], 0
sete cl
mov byte [rbp - 1], cl
cmp eax, 0x1c5eece
je 0x14016b4d0
mov al, byte [rbp - 1]
test al, 1
jne 0x14016b564
jmp 0x14016b875
mov rax, qword [rbp + 8]
mov rcx, qword [rbp - 0x10]
cmp rax, rcx
je 0x14016b89b
mov rcx, qword [rbp + 8]
mov rax, rcx
add rax, 1
mov qword [rbp - 0x20], rax
xor rcx, 0xffffffffffffffff
and rax, rcx
cmp rax, 0
jge 0x14016b5a7
sub rsp, 0x20
call fcn.1400091c0
add rsp, 0x20
jmp 0x14016b875
mov eax, dword [0x1401fb8b0]
mov ecx, dword [0x1401fb8b4]
xor ecx, 0xaf9ae41d
xor edx, edx
div ecx
mov ecx, eax
mov eax, 0x72a8c79c
xor eax, 0x36f22111
add ecx, eax
or ecx, 0xd0cb3b0
mov edx, 0xe189fd83
xor edx, 0x7767b710
mov eax, ecx
and eax, edx
mov edx, 0x19be732b
xor edx, 0x8f5039b8
xor ecx, edx
or eax, ecx
cmp eax, 0x7b82290
jb 0x14016bd0b
mov r8, qword [rbp - 0x20]
mov eax, dword [0x1401fb8b8]
xor eax, 0x78c8a2b4
xor edx, edx
div dword [0x1401fb8bc]
mov esi, eax
mov ecx, esi
xor ecx, 0xffffffff
mov r9d, 0xffffffff
xor r9d, 0x5e737cbe
mov edx, 0xffffffff
xor edx, 0xa7559f70
mov eax, ecx
and eax, 0xa7559f70
and esi, edx
mov r11d, 0x1a80e188
xor r11d, 0xbdd57ef8
mov r10d, r9d
and r10d, r11d
mov r11d, edx
and r11d, 0x5e737cbe
or eax, esi
or r10d, r11d
xor eax, r10d
or ecx, r9d
xor ecx, 0xffffffff
or edx, 0xa7559f70
and ecx, edx
or eax, ecx
mov ecx, 0xf73878cd
xor ecx, 0xd3f9c805
or eax, ecx
add eax, 0xd6d0aac1
sub eax, 0x3a2683f2
sub eax, 0xd6d0aac1
mov dword [rbp - 0x28], eax
mov eax, 0x5be83fc5
xor eax, 0x473a987f
mov dword [rbp - 0x2c], eax
mov rcx, qword [0x140279d08]
mov rax, qword [rbp + 0x2e8]
mov qword [rbp + 0x258], rax
mov rax, qword [rbp + 0x2f0]
mov qword [rbp + 0x260], rax
lea rdx, [rbp + 0x258]
sub rsp, 0x20
call fcn.140066f00
mov rdx, qword [rbp + 0x170]
mov ecx, dword [rbp - 0x2c]
mov eax, dword [rbp - 0x28]
add rsp, 0x20
cmp byte [rdx], 0
sete dl
mov byte [rbp - 0x21], dl
cmp eax, ecx
jb 0x14016bd0b
mov al, byte [rbp - 0x21]
test al, 1
jne 0x14016b6ff
jmp 0x14016b875
mov rdx, qword [rbp - 0x20]
mov qword [rbp + 0x268], 0
mov qword [rbp + 0x270], 0
lea rcx, [rbp + 0x248]
mov r8d, 1
sub rsp, 0x20
call fcn.14004f420
mov rax, qword [rbp + 0x170]
add rsp, 0x20
mov rcx, qword [rbp + 0x248]
mov qword [rbp - 0x40], rcx
mov rcx, qword [rbp + 0x250]
mov qword [rbp - 0x38], rcx
cmp byte [rax], 0
jne 0x14016b875
mov rcx, qword [rbp - 0x40]
mov rdx, qword [rbp + 0x2e8]
mov rax, rdx
and rax, rcx
shl rax, 1
xor rdx, rcx
add rdx, rax
lea rcx, [rbp + 0x268]
sub rsp, 0x20
call fcn.14001e097
mov rdx, qword [rbp + 0x158]
add rsp, 0x20
mov rax, qword [rbp + 0x2e8]
mov qword [rdx], rax
mov rax, qword [rbp + 0x2f0]
mov qword [rdx + 8], rax
lea rcx, [rbp + 0x268]
sub rsp, 0x20
call fcn.14016c09c
mov rcx, qword [rbp - 0x40]
mov rax, qword [rbp - 0x38]
add rsp, 0x20
mov qword [rbp + 0x238], rcx
mov qword [rbp + 0x240], rax
lea rcx, [rbp + 0x268]
lea rdx, [rbp + 0x238]
sub rsp, 0x20
call fcn.14016c09c
add rsp, 0x20
mov rax, qword [rbp + 0x268]
mov qword [rbp + 0x228], rax
mov rax, qword [rbp + 0x270]
mov qword [rbp + 0x230], rax
lea rcx, [rbp + 0x2e8]
lea rdx, [rbp + 0x228]
sub rsp, 0x20
call fcn.140017ca0
mov rax, qword [rbp - 0x38]
add rsp, 0x20
cmp rax, 0
je 0x14016b896
mov rcx, qword [rbp - 0x38]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
movabs rcx, 0xba2a7741171947c5
movabs rdx, 0xba2a7741171947c5
xor rcx, rdx
cmp rax, rcx
jne 0x14016b896
mov rcx, qword [rbp - 0x38]
sub rsp, 0x20
call fcn.140011305
add rsp, 0x20
jmp 0x14016b896
mov rax, qword [rbp + 0x118]
mov rcx, qword [rbp + 0x110]
mov qword [rbp + 0x198], rcx
mov qword [rbp + 0x1a0], rax
jmp 0x14016bb84
jmp 0x14016b954
mov cx, 0x93a8
xor cx, 0x9b4a
sub rsp, 0x20
call fcn.14006d5fc
mov rdx, qword [rbp + 0x170]
mov rcx, qword [rbp + 0x110]
add rsp, 0x20
mov r8, rax
mov rax, qword [rbp + 0x118]
mov qword [rbp - 0x48], r8
cmp byte [rdx], 0
mov qword [rbp + 0x198], rcx
mov qword [rbp + 0x1a0], rax
jne 0x14016bb84
mov r8, qword [rbp - 0x48]
mov rcx, qword [0x140279d08]
mov rax, qword [rbp + 0x2e8]
mov qword [rbp + 0x218], rax
mov rax, qword [rbp + 0x2f0]
mov qword [rbp + 0x220], rax
lea rdx, [rbp + 0x218]
sub rsp, 0x20
call fcn.140066f00
mov rdx, qword [rbp + 0x170]
mov rcx, qword [rbp + 0x110]
mov rax, qword [rbp + 0x118]
add rsp, 0x20
mov dl, byte [rdx]
mov r8b, 0xcd
xor r8b, 0xcd
cmp dl, r8b
mov qword [rbp + 0x198], rcx
mov qword [rbp + 0x1a0], rax
jne 0x14016bb84
cmp qword [rbp + 0x2e8], 0
jne 0x14016b967
jmp 0x14016ba48
mov rax, qword [rbp + 0x2e8]
mov qword [rbp + 0x1f8], rax
mov rax, qword [rbp + 0x2f0]
mov qword [rbp + 0x200], rax
xor eax, eax
mov r8b, al
xor r8b, 1
mov r9b, 1
xor r9b, 0
sub rsp, 0x30
lea rcx, [0x140207e30]
mov rax, rsp
mov qword [rax + 0x20], rcx
and r8b, 1
and r9b, 1
lea rcx, [rbp + 0x208]
lea rdx, [rbp + 0x1f8]
call fcn.140046a80
mov rdx, qword [rbp + 0x170]
mov rcx, qword [rbp + 0x110]
mov rax, qword [rbp + 0x118]
add rsp, 0x30
mov r8, qword [rbp + 0x208]
mov qword [rbp - 0x58], r8
mov r8, qword [rbp + 0x210]
mov qword [rbp - 0x50], r8
cmp byte [rdx], 0
mov qword [rbp + 0x198], rcx
mov qword [rbp + 0x1a0], rax
jne 0x14016bb84
mov rax, qword [rbp - 0x50]
mov rcx, qword [rbp - 0x58]
mov qword [rbp + 0x1e8], rcx
mov qword [rbp + 0x1f0], rax
lea rcx, [rbp + 0x2e8]
lea rdx, [rbp + 0x1e8]
sub rsp, 0x20
call fcn.140017ca0
add rsp, 0x20
mov rax, qword [rbp + 0x2e8]
cmp rax, 0
jne 0x14016bacd
lea rcx, [rbp + 0x1d0]
mov edx, 0x18
sub rsp, 0x20
call fcn.14016a3c0
add rsp, 0x20
lea rcx, [rbp + 0x1d0]
sub rsp, 0x20
call fcn.14016a5c3
mov rax, qword [rbp + 0x170]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14016baac
mov rax, qword [rbp + 0x168]
mov rcx, qword [rbp + 0x1d0]
mov qword [rax], rcx
mov rcx, qword [rbp + 0x1d8]
mov qword [rax + 8], rcx
mov rcx, qword [rbp + 0x1e0]
mov qword [rax + 0x10], rcx
mov rax, qword [rbp + 0x118]
mov rcx, qword [rbp + 0x110]
mov qword [rbp + 0x198], rcx
mov qword [rbp + 0x1a0], rax
jmp 0x14016bb84
mov rax, qword [rbp + 0x2e8]
mov qword [rbp + 0x1a8], rax
mov rax, qword [rbp + 0x2f0]
mov qword [rbp + 0x1b0], rax
lea rcx, [rbp + 0x2e8]
sub rsp, 0x20
call fcn.140012dfb
add rsp, 0x20
lea rcx, [rbp + 0x1b8]
mov edx, 0x18
sub rsp, 0x20
call fcn.14016a3c0
add rsp, 0x20
lea rcx, [rbp + 0x1b8]
lea rdx, [rbp + 0x1a8]
sub rsp, 0x20
call fcn.14016a5e3
mov rax, qword [rbp + 0x170]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14016bb68
mov rax, qword [rbp + 0x168]
mov rcx, qword [rbp + 0x1b8]
mov qword [rax], rcx
mov rcx, qword [rbp + 0x1c0]
mov qword [rax + 8], rcx
mov rcx, qword [rbp + 0x1c8]
mov qword [rax + 0x10], rcx
mov rax, qword [rbp + 0x118]
mov rcx, qword [rbp + 0x110]
mov qword [rbp + 0x198], rcx
mov qword [rbp + 0x1a0], rax
mov rax, qword [rbp + 0x188]
mov rcx, qword [rbp + 0x198]
mov rdx, qword [rbp + 0x1a0]
mov qword [rbp - 0x70], rdx
mov qword [rbp - 0x68], rcx
mov rax, qword [rax]
mov qword [rbp - 0x60], rax
cmp rax, 0
je 0x14016bbf4
mov rcx, qword [rbp - 0x60]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
movabs rcx, 0xf3fa4076ca8a184f
movabs rdx, 0xf3fa4076ca8a184f
xor rcx, rdx
cmp rax, rcx
jne 0x14016bbf4
mov rcx, qword [rbp - 0x60]
sub rsp, 0x20
call fcn.140011305
add rsp, 0x20
mov rcx, qword [rbp + 0x160]
mov rax, qword [rbp - 0x70]
mov rdx, qword [rbp - 0x68]
mov qword [rcx], rdx
mov qword [rcx + 8], rax
sub rsp, 0x20
call fcn.14001ca00
mov rax, qword [rbp + 0x180]
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp - 0x78], rax
cmp rax, 0
je 0x14016bcbb
mov rax, qword [rbp - 0x78]
mov rax, qword [rax]
movabs rdx, 0xd699d2e1dfb4a72a
movabs rcx, 0x9699d2e1dfb4a72a
xor rdx, rcx
mov rcx, rax
xor rcx, rdx
movabs rdx, 0x5261b1bb3c8c2936
movabs r8, 0xad9e4e44c373d6c9
xor rdx, r8
xor rcx, rdx
movabs rdx, 0x99e2955743a7240b
movabs r8, 0xd9e2955743a7240b
xor rdx, r8
or rax, rdx
and rax, rcx
movabs rcx, 0x4be1ea24866968c0
movabs rdx, 0x4be1ea24866968c0
xor rcx, rdx
cmp rax, rcx
jne 0x14016bcbb
mov rcx, qword [rbp - 0x78]
sub rsp, 0x20
call fcn.140011305
add rsp, 0x20
mov rax, qword [rbp + 0x120]
lea rsp, [rbp + 0x308]
pop rsi
pop rbp
ret
lea esp, [rax]
and dword [rdx - 0x17], 0x76
in al, dx
invalid
loopne 0x14016bd56
pop rdi
jmp 0x14016ac37
invalid
push rdx
invalid
mov esp, 0xe94a887f
invalid
mov eax, edi
adc edi, dword [rcx - 0x17]
mov ch, 0xf6
invalid
insb byte [rdi], dx
pop rdx
rcl ebp, 1
jmp 0x14016b4d0
xor al, 0xfe
xchg ecx, eax
ret 0xe6e9
mov edx, ecx