Function at 0x140171fe0
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x1f0
lea rbp, [rsp + 0x80]
mov qword [rbp + 0xd8], rcx
mov eax, 0x10
mov qword [rbp + 0xb8], rax
call fcn.1401d7280
sub rsp, rax
mov rax, qword [rbp + 0xb8]
mov rcx, rsp
mov qword [rbp + 0xa8], rcx
call fcn.1401d7280
sub rsp, rax
mov rax, qword [rbp + 0xb8]
mov rcx, rsp
mov qword [rbp + 0xb0], rcx
call fcn.1401d7280
sub rsp, rax
mov rax, qword [rbp + 0xb8]
mov rcx, rsp
mov qword [rbp + 0xc0], rcx
call fcn.1401d7280
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0xc8], rax
sub rsp, 0x20
call fcn.140172b82
add rsp, 0x20
mov qword [rbp + 0xe0], rax
add rax, 0x60
mov qword [rbp + 0xd0], rax
mov ecx, 0x20
mov edx, 8
sub rsp, 0x20
call fcn.140012010
mov rcx, qword [rbp + 0xd8]
add rsp, 0x20
mov rdx, rax
mov rcx, qword [rcx]
add rcx, 0x20
sub rsp, 0x20
call fcn.1401717f0
mov rax, qword [rbp + 0xe0]
add rsp, 0x20
cmp byte [rax + 0x60], 0
jne 0x140172970
mov rax, qword [0x1401eea90]
mov rax, qword [rax]
mov rax, qword [rax + 8]
mov qword [rbp + 0xa0], rax
cmp rax, 0
je 0x140172a3e
mov rax, qword [rbp + 0xc0]
mov rcx, qword [rbp + 0xa0]
mov rcx, qword [rcx]
mov qword [rbp + 0x78], rcx
add rax, 8
mov qword [rbp + 0x80], rax
lea rax, [rbp + 0x138]
add rax, 8
mov qword [rbp + 0x88], rax
xor eax, eax
mov ecx, eax
xor eax, eax
mov qword [rbp + 0x90], rcx
mov dword [rbp + 0x9c], eax
mov rcx, qword [rbp + 0x78]
mov rax, qword [rbp + 0x90]
mov edx, dword [rbp + 0x9c]
mov dword [rbp + 0x6c], edx
mov qword [rbp + 0x70], rax
cmp rax, rcx
jge 0x140172726
mov rcx, qword [rbp + 0x70]
test rcx, rcx
setns al
mov rdx, qword [0x1401eea90]
mov rdx, qword [rdx]
mov rdx, qword [rdx + 8]
mov qword [rbp + 0x58], rdx
mov rdx, qword [rdx]
mov qword [rbp + 0x60], rdx
sub rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x1401721df
mov rcx, qword [rbp + 0x70]
mov rdx, qword [rbp + 0x60]
movabs rax, 0x6fd0fea779b64254
movabs r8, 0x6fd0fea779b64254
xor rax, r8
movabs r8, 0x4ad5d11280ba89fe
movabs r9, 0xb52a2eed7f457601
xor r8, r9
sub rax, r8
sub rdx, rax
sub rsp, 0x20
call fcn.140012270
mov rdx, qword [rbp + 0x70]
mov eax, dword [rbp + 0x6c]
add rsp, 0x20
xor ecx, ecx
mov qword [rbp + 0x40], rdx
mov qword [rbp + 0x48], rcx
mov dword [rbp + 0x54], eax
jmp 0x140172684
mov rcx, qword [rbp + 0x70]
mov rax, qword [rbp + 0x58]
mov rax, qword [rax + 8]
mov rcx, qword [rax + rcx*8 + 8]
sub rsp, 0x20
call fcn.1400d4787
mov r9, qword [rbp + 0xd0]
mov rdx, qword [rbp + 0x70]
add rsp, 0x20
mov rcx, rax
mov eax, dword [rbp + 0x6c]
mov qword [rbp + 0x18], rcx
mov r8b, 1
xor ecx, ecx
cmp byte [r9], 0
mov byte [rbp + 0x27], r8b
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], rcx
mov dword [rbp + 0x3c], eax
jne 0x1401726a8
mov rcx, qword [rbp + 0x18]
sub rsp, 0x20
call fcn.14014d590
mov r9, qword [rbp + 0xd0]
mov rdx, qword [rbp + 0x70]
add rsp, 0x20
mov rcx, rax
mov eax, dword [rbp + 0x6c]
mov qword [rbp + 0x10], rcx
mov r8b, 1
xor ecx, ecx
cmp byte [r9], 0
mov byte [rbp + 0x27], r8b
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], rcx
mov dword [rbp + 0x3c], eax
jne 0x1401726a8
mov rax, qword [rbp + 0x10]
mov rcx, qword [rax + 0x30]
xor eax, eax
mov dl, al
xor dl, 1
sub rsp, 0x20
and dl, 1
call fcn.14012bcc7
mov r9, qword [rbp + 0xd0]
mov rdx, qword [rbp + 0x70]
mov rcx, qword [rbp + 0x10]
add rsp, 0x20
mov r8, rax
mov eax, dword [rbp + 0x6c]
mov qword [rbp + 8], r8
mov r8b, 1
cmp byte [r9], 0
mov byte [rbp + 0x27], r8b
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], rcx
mov dword [rbp + 0x3c], eax
jne 0x1401726a8
mov ax, 0xf0c7
xor ax, 0xf540
mov word [rbp + 0x15e], ax
lea rcx, [rbp + 0x15e]
sub rsp, 0x20
call fcn.140065650
mov r9, qword [rbp + 0xd0]
mov rdx, qword [rbp + 0x70]
mov rcx, qword [rbp + 0x10]
add rsp, 0x20
mov r8, rax
mov eax, dword [rbp + 0x6c]
mov qword [rbp], r8
mov r8b, 1
cmp byte [r9], 0
mov byte [rbp + 0x27], r8b
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], rcx
mov dword [rbp + 0x3c], eax
jne 0x1401726a8
mov rcx, qword [rbp + 0x10]
mov rax, qword [rbp + 0xc8]
mov rdx, qword [rbp]
mov r8, qword [rdx]
mov qword [rbp + 0x148], r8
mov rdx, qword [rdx + 8]
mov qword [rbp + 0x150], rdx
mov rdx, qword [rcx + 8]
mov qword [rax], rdx
mov rcx, qword [rcx + 0x10]
mov qword [rax + 8], rcx
sub rsp, 0x20
call fcn.140172b82
mov r8, qword [rbp + 0xb0]
mov rcx, qword [rbp + 0xc0]
add rsp, 0x20
mov rax, qword [rbp + 0xc8]
mov rdx, qword [rbp + 0x148]
mov qword [rbp + 0x160], rdx
mov rdx, qword [rbp + 0x150]
mov qword [rbp + 0x168], rdx
mov rdx, qword [rax]
mov qword [r8], rdx
mov rax, qword [rax + 8]
mov qword [r8 + 8], rax
lea rdx, [rbp + 0x160]
sub rsp, 0x20
call fcn.1400901c9
mov r10, qword [rbp + 0xc0]
mov r9, qword [rbp + 0x80]
mov r8, qword [rbp + 0xd0]
mov rdx, qword [rbp + 0x70]
mov rcx, qword [rbp + 0x10]
mov eax, dword [rbp + 0x6c]
add rsp, 0x20
mov r10, qword [r10]
mov qword [rbp - 0x10], r10
mov r9, qword [r9]
mov qword [rbp - 8], r9
mov r9b, byte [r8]
mov r10b, 7
xor r10b, 7
mov r8b, 1
cmp r9b, r10b
mov byte [rbp + 0x27], r8b
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], rcx
mov dword [rbp + 0x3c], eax
jne 0x1401726a8
mov rax, qword [rbp + 0x88]
mov rcx, qword [rbp - 8]
mov rdx, qword [rbp - 0x10]
mov r8, qword [rbp + 0xd8]
mov r8, qword [r8]
add r8, 0x18
mov qword [rbp - 0x20], r8
mov qword [rbp + 0x138], rdx
mov qword [rax], rcx
lea rcx, [rbp + 0x128]
xor edx, edx
mov r8d, 0x10
sub rsp, 0x20
call sub.msvcrt.dll_memset
mov rcx, qword [rbp - 0x20]
mov rdx, qword [rbp + 8]
add rsp, 0x20
lea r8, [rbp + 0x138]
xor eax, eax
mov r9d, eax
lea rax, [rbp + 0x128]
sub rsp, 0x30
mov qword [rsp + 0x20], rax
call fcn.140139430
mov r9, qword [rbp + 0xd0]
mov rdx, qword [rbp + 0x70]
mov rcx, qword [rbp + 0x10]
add rsp, 0x30
mov r8d, eax
mov eax, dword [rbp + 0x6c]
mov dword [rbp - 0x14], r8d
mov r8b, 1
cmp byte [r9], 0
mov byte [rbp + 0x27], r8b
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], rcx
mov dword [rbp + 0x3c], eax
jne 0x1401726a8
mov eax, dword [rbp - 0x14]
mov ecx, dword [rbp + 0x6c]
movsxd r9, ecx
movsxd rcx, eax
movabs rax, 0xa3da94fe2730b790
mov rdx, rcx
sub rdx, rax
add rdx, r9
movabs rax, 0xa3da94fe2730b790
add rdx, rax
mov qword [rbp - 0x28], rdx
mov r8, rdx
and r8, r9
shl r8, 1
mov rax, rdx
add rax, r9
sub rax, r8
xor rdx, rcx
mov rcx, rax
xor rcx, rdx
xor rcx, 0xffffffffffffffff
or rax, rdx
and rax, rcx
cmp rax, 0
jge 0x140172610
mov eax, dword [0x1401e1c40]
xor eax, 0x975bf802
mov ecx, dword [0x1401e1c44]
xor ecx, 0xffffffff
add eax, ecx
add eax, 1
and eax, 0xaef6d0ae
mov r8d, 0x1c6c8e4a
xor r8d, 0x5a3b4749
mov ecx, 0x4117af9
xor ecx, 0xfbee8506
xor r8d, ecx
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov r8d, 0xdfce7452
xor r8d, 0x9999bd51
mov edx, eax
and edx, r8d
or eax, 0x4657c903
imul eax, edx
add eax, ecx
and eax, 0xd659ccb5
mov ecx, 0xde649f13
xor ecx, 0xfb01d9d9
cmp eax, ecx
je 0x140172b67
mov ecx, dword [0x1401e1c48]
add ecx, dword [0x1401e1c4c]
add ecx, 0xa5b68794
mov edx, 0xa42613ae
xor edx, 0x5bd9ec51
mov eax, ecx
xor eax, edx
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0x99aca788
or ecx, 0x99aca788
xor ecx, 0xffffffff
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
mov ecx, 0x109df391
xor ecx, 0x8ce22594
xor edx, edx
div ecx
mov dword [rbp - 0x2c], eax
sub rsp, 0x20
call fcn.140007bb8
mov eax, dword [rbp - 0x2c]
add rsp, 0x20
cmp eax, 0x3cf66e4d
ja 0x14017258c
mov eax, dword [rbp + 0x6c]
mov rcx, qword [rbp + 0x10]
mov rdx, qword [rbp + 0x70]
mov qword [rbp + 0x40], rdx
mov qword [rbp + 0x48], rcx
mov dword [rbp + 0x54], eax
jmp 0x140172684
mov rax, qword [rbp - 0x28]
add rax, 0xffffffff80000000
movabs rcx, 0xffffffff00000000
cmp rax, rcx
jae 0x140172655
sub rsp, 0x20
call fcn.140007bb8
mov rdx, qword [rbp + 0x70]
mov rcx, qword [rbp + 0x10]
mov eax, dword [rbp + 0x6c]
add rsp, 0x20
mov qword [rbp + 0x40], rdx
mov qword [rbp + 0x48], rcx
mov dword [rbp + 0x54], eax
jmp 0x140172684
mov rcx, qword [rbp + 0x10]
mov rdx, qword [rbp + 0x70]
mov rax, qword [rbp - 0x28]
mov r8, 0xffffffffffffffff
xor r8, 1
xor r9d, r9d
sub r9, 1
sub r8, r9
sub rdx, r8
mov qword [rbp + 0x40], rdx
mov qword [rbp + 0x48], rcx
mov dword [rbp + 0x54], eax
mov r8, qword [rbp + 0xd0]
mov rdx, qword [rbp + 0x40]
mov rcx, qword [rbp + 0x48]
mov eax, dword [rbp + 0x54]
mov r8b, byte [r8]
mov byte [rbp + 0x27], r8b
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], rcx
mov dword [rbp + 0x3c], eax
mov rax, qword [rbp + 0xd0]
mov dl, byte [rbp + 0x27]
mov r8, qword [rbp + 0x28]
mov rcx, qword [rbp + 0x30]
mov r9d, dword [rbp + 0x3c]
mov dword [rbp - 0x3c], r9d
mov qword [rbp - 0x38], r8
mov byte [rbp - 0x2d], dl
mov byte [rax], 0
sub rsp, 0x20
call fcn.14014dad8
mov rax, qword [rbp + 0xd0]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0x17
xor cl, 0x17
cmp al, cl
jne 0x140172721
mov al, byte [rbp - 0x2d]
mov rdx, qword [rbp + 0xd0]
mov cl, 0xc3
xor cl, 0xc3
mov byte [rdx], al
cmp al, cl
jne 0x140172721
mov eax, dword [rbp - 0x3c]
mov rcx, qword [rbp - 0x38]
mov qword [rbp + 0x90], rcx
mov dword [rbp + 0x9c], eax
jmp 0x140172129
jmp 0x140172970
sub rsp, 0x20
mov cx, 0x70f
call fcn.140065c5f
mov rcx, qword [rbp + 0xd0]
add rsp, 0x20
mov edx, eax
mov eax, dword [rbp + 0x6c]
mov cl, byte [rcx]
sub eax, edx
setge al
test cl, cl
movzx ecx, al
mov eax, ecx
lea ecx, [rax + rax*4 + 4]
mov eax, 2
cmove eax, ecx
mov dword [rbp - 0x40], eax
sub eax, 2
je 0x140172970
jmp 0x14017276e
mov eax, dword [rbp - 0x40]
sub eax, 4
je 0x140172a3e
jmp 0x14017277f
mov eax, dword [rbp - 0x40]
sub eax, 9
jne 0x140172a47
jmp 0x140172790
mov cx, 0xe3a8
xor cx, 0xeb3b
sub rsp, 0x20
call fcn.140065c5f
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp + 0xd0]
mov dword [rbp - 0x44], ecx
cmp byte [rax], 0
jne 0x140172970
mov rax, qword [rbp + 0xd8]
mov rax, qword [rax]
mov rdx, qword [rax + 0x20]
lea rcx, [rbp + 0x118]
sub rsp, 0x20
call fcn.14007cb41
mov rax, qword [rbp + 0xd0]
add rsp, 0x20
mov rcx, qword [rbp + 0x118]
mov qword [rbp - 0x58], rcx
mov rcx, qword [rbp + 0x120]
mov qword [rbp - 0x50], rcx
cmp byte [rax], 0
jne 0x140172970
mov eax, dword [0x1401e1c50]
xor eax, 0x1c2e1b80
mov ecx, dword [0x1401e1c54]
xor ecx, 0xc84dfddf
and eax, ecx
mov ecx, eax
and ecx, 0x828e6062
mov edx, 0xa3d17556
xor edx, 0x5c2e8aa9
xor ecx, edx
add eax, 0x828e6062
mov edx, 0x65fae3c8
xor edx, 0x65fae3c9
add eax, edx
add eax, ecx
mov ecx, 0x81808fa5
xor ecx, 0x84c8a783
add eax, ecx
or eax, 0x7eb8c1fb
cmp eax, 0x4768f404
jb 0x140172b70
mov eax, dword [0x1401e1c58]
xor edx, edx
div dword [0x1401e1c5c]
mov ecx, eax
mov rax, qword [rbp + 0xd8]
imul ecx, ecx, 0x57de958f
mov edx, 0x8b151dd5
xor edx, 0x465e13fb
sub ecx, edx
xor ecx, 0x79cb764
mov dword [rbp - 0x74], ecx
mov rdx, qword [rax]
add rdx, 0x18
lea rcx, [rbp + 0x108]
sub rsp, 0x20
call fcn.140120b50
mov rcx, qword [rbp + 0xd0]
mov eax, dword [rbp - 0x74]
add rsp, 0x20
mov rdx, qword [rbp + 0x108]
mov qword [rbp - 0x70], rdx
mov rdx, qword [rbp + 0x110]
mov qword [rbp - 0x68], rdx
cmp byte [rcx], 0
sete cl
mov byte [rbp - 0x59], cl
cmp eax, 0x655bd985
je 0x140172862
mov al, byte [rbp - 0x59]
test al, 1
jne 0x1401728f4
jmp 0x140172970
mov ecx, dword [rbp - 0x44]
mov rax, qword [rbp - 0x68]
mov rdx, qword [rbp - 0x70]
mov r8, qword [rbp - 0x50]
mov r9, qword [rbp - 0x58]
mov qword [rbp + 0xf8], r9
mov qword [rbp + 0x100], r8
mov qword [rbp + 0xe8], rdx
mov qword [rbp + 0xf0], rax
lea rdx, [rbp + 0xf8]
lea r8, [rbp + 0xe8]
sub rsp, 0x20
call fcn.140095b60
mov rax, qword [rbp + 0xd0]
add rsp, 0x20
cmp byte [rax], 0
jne 0x140172970
mov ecx, 0xed
sub rsp, 0x20
call fcn.140065db0
mov rax, qword [rbp + 0xd0]
add rsp, 0x20
cmp byte [rax], 0
je 0x140172a3e
sub rsp, 0x20
call fcn.140172b82
add rsp, 0x20
mov rax, qword [rax + 0x10]
mov rax, qword [rax]
mov qword [rbp - 0x80], rax
cmp word [rax + 0x12], 1
jle 0x140172a3e
mov rax, qword [rbp - 0x80]
mov rax, qword [rax + 0x18]
cmp dword [rax + 8], 0xd4054986
jne 0x140172a3e
mov rax, qword [rbp + 0xd0]
mov byte [rax], 0
sub rsp, 0x20
call fcn.140172b82
mov rcx, qword [rbp + 0xa8]
add rsp, 0x20
mov qword [rcx], 0
mov rdx, qword [rax + 0x10]
xor eax, eax
mov r8b, al
xor r8b, 0
and r8b, 1
sub rsp, 0x20
call fcn.140011b1f
mov rax, qword [rbp + 0xa8]
add rsp, 0x20
mov rcx, qword [rax]
sub rsp, 0x20
call fcn.14009428e
mov rax, qword [rbp + 0xd0]
add rsp, 0x20
cmp byte [rax], 0
jne 0x140172a3e
sub rsp, 0x20
call fcn.140172b82
add rsp, 0x20
mov rcx, rax
add rcx, 0x10
mov rax, qword [rax + 0x10]
mov rdx, qword [rax + 0x38]
xor r8d, r8d
sub rsp, 0x20
call fcn.140011b1f
add rsp, 0x20
lea rsp, [rbp + 0x170]
pop rbp
ret
mov eax, dword [str.sw_g]
xor eax, 0xaf27f74e
or eax, dword [0x1401e1c64]
mov ecx, 0x1adafc61
xor edx, edx
div ecx
mov ecx, 0x819e391e
xor edx, edx
div ecx
mov ecx, eax
mov edx, 0x7630938a
xor edx, 0x89cf6c75
mov eax, ecx
xor eax, edx
mov edx, ecx
xor edx, 0xffffffff
and eax, edx
mov edx, 0xaaf23021
or edx, 0xaaf23021
mov r8d, 0x60cb093c
xor r8d, 0x9f34f6c3
xor edx, r8d
or eax, edx
mov edx, 0xed39f4ac
xor edx, 0x12c60b53
xor eax, edx
mov edx, 0x3ac03084
xor edx, 0xc53fcf7b
xor ecx, edx
mov edx, 0xffffffff
xor edx, 0xaaf23021
and ecx, edx
or eax, ecx
xor eax, 0xffffffff
cmp eax, 0xde3b68e5
jae 0x140172b79
mov r8d, dword [0x1401e1c68]
mov edx, dword [0x1401e1c6c]
mov eax, r8d
xor eax, 0xffffffff
and eax, 0xa1913327
mov r9d, 0xffffffff
xor r9d, 0xa1913327
and r8d, r9d
mov r10d, 0xfc549e26
xor r10d, 0x3ab61d9
mov ecx, edx
xor ecx, r10d
and ecx, 0xa1913327
and edx, r9d
or eax, r8d
or ecx, edx
xor eax, ecx
mov ecx, 0xffffffff
xor ecx, 0xe934b4d4
xor edx, edx
sub edx, 1
sub ecx, edx
sub eax, ecx
mov ecx, 0xec8930e4
xor edx, edx
div ecx
mov ecx, 0xf13a3f11
xor ecx, 0x544a82b0
add eax, ecx
add eax, 0x5ebe3ab
mov ecx, 0x19ac8e62
xor ecx, 0xbcdc33c3
sub eax, ecx
cmp eax, 0x5fa3d605
jae 0x140172b79
bnd jmp 0x15d00c7ae
fnsave dword [rdx + rcx*4 - 0x6f]
jmp 0x140172862
shl byte [rcx + 0x38], cl
insb byte [rdi], dx
jmp 0x140172ad6