Function at 0x1401a7520
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x1d0
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x40], rcx
mov eax, 0x10
mov qword [rbp + 0x60], rax
call fcn.1401d4340
sub rsp, rax
mov rax, qword [rbp + 0x60]
mov rcx, rsp
mov qword [rbp + 0x48], rcx
call fcn.1401d4340
sub rsp, rax
mov rax, qword [rbp + 0x60]
mov rcx, rsp
mov qword [rbp + 0x50], rcx
call fcn.1401d4340
sub rsp, rax
mov rax, qword [rbp + 0x60]
mov rcx, rsp
mov qword [rbp + 0x58], rcx
call fcn.1401d4340
sub rsp, rax
mov rax, qword [rbp + 0x60]
mov rcx, rsp
mov qword [rbp + 0x68], rcx
call fcn.1401d4340
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x70], rax
sub rsp, 0x20
call fcn.1401af52d
add rsp, 0x20
mov qword [rbp + 0x80], rax
add rax, 0x60
mov qword [rbp + 0x78], rax
mov word [rbp + 0x14e], 0x7c1
lea rcx, [rbp + 0x14e]
sub rsp, 0x20
call fcn.1400629b3
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x80]
mov qword [rbp + 0x88], rcx
cmp byte [rax + 0x60], 0
jne 0x1401a80b1
mov rcx, qword [rbp + 0x58]
mov rax, qword [rbp + 0x88]
mov rdx, qword [0x1401eb878]
mov r8, qword [rdx]
mov qword [rbp + 0x138], r8
mov rdx, qword [rdx + 8]
mov qword [rbp + 0x140], rdx
mov rdx, qword [rax]
mov qword [rbp + 0x128], rdx
mov rax, qword [rax + 8]
mov qword [rbp + 0x130], rax
lea rdx, [rbp + 0x138]
lea r8, [rbp + 0x128]
sub rsp, 0x20
call fcn.1401a3acf
mov rcx, qword [rbp + 0x58]
mov rax, qword [rbp + 0x78]
add rsp, 0x20
mov rdx, qword [rcx]
mov qword [rbp + 0x30], rdx
mov rcx, qword [rcx + 8]
mov qword [rbp + 0x38], rcx
mov al, byte [rax]
mov cl, 0x4e
xor cl, 0x4e
cmp al, cl
jne 0x1401a80b1
mov r11d, dword [0x1401e0400]
xor r11d, 0x29ee21d4
mov eax, dword [str._Xle]
xor eax, 0xfec91a1a
xor eax, 0xffffffff
xor ecx, ecx
sub ecx, 1
sub eax, ecx
sub r11d, eax
mov ecx, 0x1c79be17
xor ecx, 0xd48570f7
mov eax, r11d
xor eax, ecx
xor eax, 0xffffffff
or r11d, 0xc8fccee0
and r11d, eax
mov eax, r11d
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xd4464751
mov r8d, 0x52666f44
xor r8d, 0x25de3722
mov ecx, 0x809a2d27
xor ecx, 0x7f65d2d8
xor r8d, ecx
mov ecx, eax
and ecx, 0x77b85866
and r11d, r8d
mov r9d, edx
and r9d, 0x77b85866
mov r10d, r8d
and r10d, 0xd4464751
or ecx, r11d
or r9d, r10d
xor ecx, r9d
or eax, edx
xor eax, 0xffffffff
mov edx, 0x18710649
xor edx, 0x6fc95e2f
or edx, r8d
and eax, edx
or ecx, eax
mov edx, 0xffffffff
xor edx, 0x2d8cca82
mov eax, ecx
xor eax, edx
and eax, ecx
mov ecx, 0x266d113b
xor ecx, 0x5695df0a
cmp eax, ecx
je 0x1401a81b6
mov ecx, dword [0x1401e0408]
xor ecx, 0xf0d0be91
mov edx, dword [0x1401e040c]
mov eax, edx
and eax, ecx
xor eax, 0xffffffff
add ecx, edx
mov edx, 0xa73f20a3
xor edx, 0xa73f20a2
add ecx, edx
add ecx, eax
mov eax, 0x55d840b0
xor eax, 0xdf700ed9
mov edx, 0xdf3dc2a3
xor edx, 0x20c23d5c
xor eax, edx
xor edx, edx
sub edx, 1
sub eax, edx
sub ecx, eax
mov eax, ecx
or eax, 0x96cdfb66
xor eax, 0xffffffff
xor ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x96cdfb66
and ecx, edx
or eax, ecx
xor eax, 0xffffffff
mov edx, 0x8bcccd6
xor edx, 0xa5f2b166
mov ecx, 0xf089ef90
xor ecx, 0xf76106f
xor edx, ecx
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, 0xad4e7db0
add eax, edx
sub eax, ecx
mov dword [rbp + 0x1c], eax
movabs rcx, 0x667a5bd297438f8f
movabs rax, 0x667a5bd297438f8e
xor rcx, rax
movabs rdx, 0x54dd4546ab4eae2e
movabs rax, 0x54dd4546ab4eae26
xor rdx, rax
movabs r8, 0xcaf62d2711334ce5
movabs rax, 0xcaf62d2711334ced
xor r8, rax
sub rsp, 0x20
call fcn.1400105f0
add rsp, 0x20
mov qword [rbp + 8], rax
mov ecx, 0x18
mov edx, 8
sub rsp, 0x20
call fcn.14001bcc0
mov rcx, qword [rbp + 0x48]
add rsp, 0x20
mov qword [rbp + 0x10], rax
mov word [rcx], 0x767
sub rsp, 0x20
call fcn.1400629b3
mov rcx, qword [rbp + 0x78]
add rsp, 0x20
mov rdx, rax
mov eax, dword [rbp + 0x1c]
mov qword [rbp + 0x20], rdx
mov cl, byte [rcx]
mov dl, 0x9b
xor dl, 0x9b
cmp cl, dl
sete cl
mov byte [rbp + 0x2f], cl
cmp eax, 0xa48ec055
jbe 0x1401a773b
mov cl, byte [rbp + 0x2f]
mov al, 1
test cl, 1
mov byte [rbp + 7], al
jne 0x1401a7894
jmp 0x1401a7f22
mov eax, dword [0x1401e0410]
and eax, dword [0x1401e0414]
or eax, 0x70f410a1
add eax, 0xe4911f7f
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0xbde24492
xor edx, 0x5dc2582e
and edx, ecx
mov r8d, 0x3f118138
xor r8d, 0xdf319d84
mov ecx, 0x5e0149c9
xor ecx, 0xa1feb636
xor r8d, ecx
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0xe0201cbc
or eax, 0xe0201cbc
imul eax, edx
add eax, ecx
cmp eax, 0xf458f2bf
je 0x1401a81bf
mov rax, qword [rbp + 0x20]
mov ecx, dword [0x1401e0418]
imul ecx, dword [0x1401e041c]
xor ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xe23d391a
mov r8d, 0xca52460a
xor r8d, 0xfd32798a
mov r9d, 0xe8a99ff6
xor r9d, 0x17566009
xor r8d, r9d
or ecx, edx
mov edx, 0xbd73ae82
xor edx, 0x8a139102
or edx, r8d
xor ecx, 0xffffffff
and ecx, edx
mov edx, 0xa446d06
xor edx, 0x3d3fd7ed
mov r8d, ecx
xor r8d, edx
xor r8d, 0xffffffff
mov edx, 0x5ad0a50c
xor edx, 0x6dab1fe7
and edx, r8d
shl edx, 1
sub edx, 0x377bbaeb
sub ecx, edx
and ecx, 0x4c6bc86
mov dword [rbp], ecx
mov ecx, 0xa40b24bb
xor ecx, 0xd5b286cc
mov dword [rbp - 4], ecx
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.14001d024
mov rax, qword [rbp + 0x10]
add rsp, 0x20
mov rdx, qword [rbp + 0x118]
mov rcx, qword [rbp + 0x120]
mov qword [rax], rdx
mov qword [rax + 8], rcx
mov ecx, 0x8ae
sub rsp, 0x20
call fcn.140062c50
mov r8, qword [rbp + 0x10]
mov rdx, qword [rbp + 0x78]
mov ecx, dword [rbp - 4]
add rsp, 0x20
mov r9d, eax
mov eax, dword [rbp]
mov dword [r8 + 0x10], r9d
cmp byte [rdx], 0
sete dl
mov byte [rbp + 6], dl
cmp eax, ecx
ja 0x1401a81bf
mov cl, byte [rbp + 6]
mov al, 1
test cl, 1
mov byte [rbp + 7], al
jne 0x1401a7a29
jmp 0x1401a7f22
mov ecx, 0x958
sub rsp, 0x20
call fcn.140062c50
mov rcx, qword [rbp + 0x78]
add rsp, 0x20
mov edx, eax
mov rax, qword [rbp + 0x10]
mov dword [rax + 0x14], edx
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 7], al
jne 0x1401a7f22
mov rax, qword [rbp + 8]
mov rcx, qword [rbp + 0x10]
mov qword [rax + 8], rcx
mov ecx, 0x65d
sub rsp, 0x20
call fcn.140062c50
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp + 0x78]
mov dword [rbp - 8], ecx
mov cl, byte [rax]
mov dl, 0xf7
xor dl, 0xf7
mov al, 1
cmp cl, dl
mov byte [rbp + 7], al
jne 0x1401a7f22
mov r8d, dword [rbp - 8]
mov rax, qword [rbp + 8]
mov rcx, qword [rbp + 0x38]
mov rdx, qword [rbp + 0x30]
mov qword [rbp + 0xf8], rdx
mov qword [rbp + 0x100], rcx
mov qword [rbp + 0xe8], 1
mov qword [rbp + 0xf0], rax
lea rcx, [rbp + 0xf8]
lea rdx, [rbp + 0xe8]
sub rsp, 0x20
call fcn.140134a30
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x78]
mov qword [rbp - 0x10], rcx
mov cl, byte [rax]
mov dl, 0xfc
xor dl, 0xfc
mov al, 1
cmp cl, dl
mov byte [rbp + 7], al
jne 0x1401a7f22
mov rcx, qword [rbp + 0x50]
mov word [rcx], 0x851
sub rsp, 0x20
call fcn.1400629b3
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x78]
mov qword [rbp - 0x18], rcx
mov cl, byte [rax]
mov dl, 0x8f
xor dl, 0x8f
mov al, 1
cmp cl, dl
mov byte [rbp + 7], al
jne 0x1401a7f22
mov rdx, qword [rbp + 0x68]
mov rax, qword [rbp - 0x18]
mov rcx, qword [rax]
mov qword [rdx], rcx
mov rax, qword [rax + 8]
mov qword [rdx + 8], rax
lea rcx, [rbp + 0xd8]
sub rsp, 0x20
call fcn.14001d024
mov r8, qword [rbp + 0x40]
mov rcx, qword [rbp + 0x70]
add rsp, 0x20
mov rdx, qword [rbp + 0xd8]
mov rax, qword [rbp + 0xe0]
mov r8, qword [r8]
add r8, 0x18
mov qword [rbp - 0x28], r8
mov qword [rbp + 0xc8], rdx
mov qword [rbp + 0xd0], rax
xor edx, edx
mov r8d, 0x10
sub rsp, 0x20
call sub.msvcrt.dll_memset
mov rcx, qword [rbp - 0x28]
mov rdx, qword [rbp - 0x10]
mov rax, qword [rbp + 0x70]
add rsp, 0x20
lea r8, [rbp + 0xc8]
xor r9d, r9d
sub rsp, 0x30
mov qword [rsp + 0x20], rax
call fcn.140134590
add rsp, 0x30
mov ecx, eax
mov rax, qword [rbp + 0x78]
mov dword [rbp - 0x1c], ecx
mov cl, byte [rax]
mov dl, 0xe4
xor dl, 0xe4
mov al, 1
cmp cl, dl
mov byte [rbp + 7], al
jne 0x1401a7f22
sub rsp, 0x20
mov cx, 0x65
call fcn.140062790
mov r8d, dword [rbp - 0x1c]
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp + 0x78]
mov al, byte [rax]
test al, al
sete cl
movsxd r8, r8d
sub rdx, r8
setl dl
and cl, dl
test cl, 1
mov byte [rbp - 0x29], al
jne 0x1401a7c22
jmp 0x1401a7f1c
mov ecx, 0x30
mov edx, 8
sub rsp, 0x20
call fcn.14001bcc0
add rsp, 0x20
mov qword [rbp - 0x48], rax
mov qword [rax], 0
mov dword [rax + 8], 1
mov ecx, 0x137
sub rsp, 0x20
call fcn.140062c50
mov rdx, qword [rbp + 0x78]
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp - 0x48]
mov dword [rax + 0xc], ecx
mov cl, 1
xor eax, eax
cmp byte [rdx], 0
mov byte [rbp - 0x39], cl
mov qword [rbp - 0x38], rax
jne 0x1401a7dbb
mov ecx, 0x20
mov edx, 8
sub rsp, 0x20
call fcn.1400133d1
add rsp, 0x20
mov qword [rbp - 0x58], rax
mov word [rbp + 0xc6], 0x45f
lea rcx, [rbp + 0xc6]
sub rsp, 0x20
call fcn.1400629b3
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x78]
mov qword [rbp - 0x50], rcx
mov dl, byte [rax]
mov r8b, 0x88
xor r8b, 0x88
mov cl, 1
xor eax, eax
cmp dl, r8b
mov byte [rbp - 0x39], cl
mov qword [rbp - 0x38], rax
jne 0x1401a7dbb
mov rax, qword [rbp - 0x50]
mov rcx, qword [rax]
mov qword [rbp + 0xa0], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0xa8], rax
lea rcx, [rbp + 0xb0]
lea rdx, [rbp + 0xa0]
sub rsp, 0x20
call fcn.14001d024
mov rdx, qword [rbp - 0x58]
add rsp, 0x20
mov rcx, qword [rbp + 0xb0]
mov rax, qword [rbp + 0xb8]
mov qword [rdx + 8], rcx
mov qword [rdx + 0x10], rax
lea rcx, [rbp + 0x90]
sub rsp, 0x20
call fcn.140070540
mov rcx, qword [rbp - 0x48]
mov rdx, qword [rbp + 0x78]
mov rax, qword [rbp - 0x58]
add rsp, 0x20
mov r8, qword [rbp + 0x90]
mov qword [rcx + 0x10], r8
mov r8, qword [rbp + 0x98]
mov qword [rcx + 0x18], r8
mov cl, 1
cmp byte [rdx], 0
mov byte [rbp - 0x39], cl
mov qword [rbp - 0x38], rax
jne 0x1401a7dbb
mov rdx, qword [rbp - 0x48]
mov rax, qword [rbp + 0x40]
mov rcx, qword [0x1401eb108]
mov qword [rdx + 0x20], rcx
mov rcx, qword [0x1401eb110]
mov qword [rdx + 0x28], rcx
mov rax, qword [rax]
mov rcx, qword [rax + 0x20]
add rcx, 8
sub rsp, 0x20
call fcn.140027d11
mov rcx, qword [rbp + 0x78]
mov rax, qword [rbp - 0x58]
add rsp, 0x20
mov cl, byte [rcx]
mov byte [rbp - 0x39], cl
mov qword [rbp - 0x38], rax
mov al, byte [rbp - 0x39]
mov rcx, qword [rbp - 0x38]
mov qword [rbp - 0x68], rcx
mov byte [rbp - 0x59], al
mov eax, dword [0x1401e0420]
mov ecx, dword [0x1401e0424]
xor ecx, 0xe7e1d744
xor edx, edx
div ecx
imul eax, eax, 0x5cdd22c2
mov ecx, eax
xor ecx, 0x76092710
xor ecx, 0xffffffff
or eax, 0x76092710
and eax, ecx
sub eax, 0xf23e1704
cmp eax, 0x455ccb7f
ja 0x1401a81c8
mov rcx, qword [rbp - 0x68]
mov eax, dword [0x1401e0428]
mov r9d, dword [0x1401e042c]
mov edx, eax
xor edx, 0xffffffff
mov r8d, r9d
and r8d, edx
mov edx, 0x526637f4
xor edx, 0xad99c80b
mov r10d, r9d
xor r10d, edx
mov edx, eax
and edx, r10d
imul edx, r8d
mov r8d, eax
and r8d, r9d
or eax, r9d
imul eax, r8d
add eax, edx
xor edx, edx
sub edx, 0xda141c43
add eax, edx
mov r8d, 0x3aa3d2e3
xor edx, edx
div r8d
mov r10d, eax
mov rax, qword [rbp + 0x78]
mov r8d, 0x833fef96
xor r8d, 0x7cc01069
mov edx, r10d
xor edx, r8d
and edx, 0xac47f56d
mov r9d, 0xffffffff
xor r9d, 0xac47f56d
and r10d, r9d
mov r8d, 0xffffffff
xor r8d, 0x579094eb
mov r11d, 0xcf8b738e
xor r11d, 0x63cc86e3
and r8d, r11d
and r9d, 0x579094eb
or edx, r10d
or r8d, r9d
xor edx, r8d
mov dword [rbp - 0x70], edx
mov edx, 0xb8ef93df
xor edx, 0xaa8d6a40
mov dword [rbp - 0x74], edx
mov byte [rax], 0
sub rsp, 0x20
call fcn.1401a0b63
mov rdx, qword [rbp + 0x78]
mov ecx, dword [rbp - 0x74]
mov eax, dword [rbp - 0x70]
add rsp, 0x20
cmp byte [rdx], 0
sete dl
mov byte [rbp - 0x69], dl
cmp eax, ecx
jb 0x1401a81c8
mov cl, byte [rbp - 0x69]
mov al, 1
test cl, 1
mov byte [rbp - 0x29], al
jne 0x1401a7f10
jmp 0x1401a7f1c
mov al, byte [rbp - 0x59]
mov rcx, qword [rbp + 0x78]
mov byte [rcx], al
mov byte [rbp - 0x29], al
mov al, byte [rbp - 0x29]
mov byte [rbp + 7], al
mov rcx, qword [rbp + 0x38]
mov al, byte [rbp + 7]
mov byte [rbp - 0x76], al
cmp rcx, 0
mov byte [rbp - 0x75], al
je 0x1401a7fbe
mov al, byte [rbp - 0x76]
mov rcx, qword [rbp + 0x38]
mov rcx, qword [rcx]
movabs r8, 0x3f06ec0ac3299e5
movabs rdx, 0x3f06ec0ac3299e4
xor r8, rdx
mov rdx, rcx
add rdx, r8
xor rcx, 0xffffffffffffffff
movabs r8, 0xa18d304123d289fd
movabs r9, 0xe18d304123d289fd
xor r8, r9
or rcx, r8
add rcx, rdx
movabs rdx, 0x67ef2df6f5ceab76
movabs r8, 0x67ef2df6f5ceab76
xor rdx, r8
cmp rcx, rdx
mov byte [rbp - 0x75], al
jne 0x1401a7fbe
mov rcx, qword [rbp + 0x38]
sub rsp, 0x20
call fcn.14000eb2e
mov rax, qword [rbp + 0x78]
add rsp, 0x20
mov al, byte [rax]
mov byte [rbp - 0x75], al
mov al, byte [rbp - 0x75]
mov byte [rbp - 0x77], al
mov ecx, dword [0x1401e0430]
xor ecx, 0xbe899f53
imul ecx, dword [0x1401e0434]
mov eax, ecx
and eax, 0xea1416c5
xor ecx, 0xea1416c5
or eax, ecx
mov ecx, 0xa945e502
xor ecx, 0x5e212bed
sub eax, ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0x93dfec4
mov r8d, 0xffffffff
xor r8d, 0x93dfec4
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x93dfec4
or eax, 0x93dfec4
imul eax, edx
add eax, ecx
cmp eax, 0x1b147d4f
je 0x1401a81d1
mov cl, byte [rbp - 0x77]
mov eax, dword [0x1401e0438]
mov r8d, dword [0x1401e043c]
xor edx, edx
sub edx, eax
xor eax, eax
sub eax, r8d
add edx, eax
xor eax, eax
sub eax, edx
mov r8d, 0x11a02870
xor edx, edx
div r8d
mov edx, 0x1aa74df3
xor edx, 0x4c869025
or eax, edx
mov r8d, 0xd64f53b4
xor r8d, 0xe10b9722
mov edx, eax
xor edx, r8d
xor edx, 0xffffffff
and edx, 0x3744c496
shl edx, 1
sub edx, 0x3744c496
sub eax, edx
cmp cl, 0
sete cl
mov byte [rbp - 0x78], cl
cmp eax, 0xeef1991d
jae 0x1401a8030
mov al, byte [rbp - 0x78]
test al, 1
jne 0x1401a8123
jmp 0x1401a80b1
sub rsp, 0x20
call fcn.1401a3b4b
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp - 0x80], rax
cmp word [rax + 0x12], 1
jle 0x1401a8123
mov rax, qword [rbp - 0x80]
mov rax, qword [rax + 0x18]
cmp dword [rax + 8], 0xd4054986
jne 0x1401a8123
mov rax, qword [rbp + 0x78]
mov byte [rax], 0
sub rsp, 0x20
call fcn.1401a3b5d
add rsp, 0x20
mov rcx, rax
sub rsp, 0x20
call fcn.14008f410
mov rax, qword [rbp + 0x78]
add rsp, 0x20
cmp byte [rax], 0
jne 0x1401a8123
sub rsp, 0x20
call fcn.1401a3bc0
add rsp, 0x20
mov eax, dword [0x1401e0440]
xor eax, 0xcec16e90
sub eax, dword [0x1401e0444]
xor ecx, ecx
sub ecx, 0x437c5bef
sub eax, ecx
xor eax, 0xbeadde92
or eax, 0xe9509a8
mov ecx, 0x2b90c1a3
xor ecx, 0x6bdc4824
cmp eax, ecx
ja 0x1401a81da
mov eax, dword [0x1401e0448]
mov ecx, 0x23b12ac9
xor ecx, 0x9a60fd9
xor eax, ecx
and eax, dword [0x1401e044c]
mov ecx, eax
xor ecx, 0x26b24ddc
mov edx, 0x322886a3
xor edx, 0xcdd7795c
xor ecx, edx
or eax, 0x26b24ddc
and eax, ecx
sub eax, 0x36579822
mov ecx, 0x94a256c9
xor ecx, 0xc9bf5e52
and eax, ecx
cmp eax, 0xea7e6dda
ja 0x1401a815b
lea rsp, [rbp + 0x150]
pop rbp
ret
jrcxz 0x1401a81c9
and al, 0x8a
jmp 0x1401a773b
xchg ebx, eax
adc eax, 0x34e95a99
idiv edi
jmp rbx
jrcxz 0x1401a81e1
invalid
imul esi, dword [rcx - 0x3c917], 0xffffffff
mov esp, 0xe9838a86
push rsi
invalid
xor byte [rbp + rsi - 0x87161f], bh
invalid