Function at 0x1401ec140
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x1c0
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x38], rcx
mov eax, 0x10
mov qword [rbp + 0x58], rax
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp + 0x58]
mov rcx, rsp
mov qword [rbp + 0x40], rcx
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp + 0x58]
mov rcx, rsp
mov qword [rbp + 0x48], rcx
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp + 0x58]
mov rcx, rsp
mov qword [rbp + 0x50], rcx
call fcn.140215890
sub rsp, rax
mov rax, qword [rbp + 0x58]
mov rcx, rsp
mov qword [rbp + 0x60], rcx
call fcn.140215890
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x68], rax
sub rsp, 0x20
call fcn.1401f245b
add rsp, 0x20
mov qword [rbp + 0x78], rax
add rax, 0x50
mov qword [rbp + 0x70], rax
mov word [rbp + 0x13e], 0xa33
lea rcx, [rbp + 0x13e]
sub rsp, 0x20
call fcn.140070140
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x78]
mov qword [rbp + 0x80], rcx
mov al, byte [rax + 0x50]
mov cl, 0x4e
xor cl, 0x4e
cmp al, cl
jne 0x1401ec982
mov rcx, qword [rbp + 0x48]
mov rax, qword [rbp + 0x80]
mov rdx, qword [0x14022dc48]
mov r8, qword [rdx]
mov qword [rbp + 0x128], r8
mov rdx, qword [rdx + 8]
mov qword [rbp + 0x130], rdx
mov rdx, qword [rax]
mov qword [rbp + 0x118], rdx
mov rax, qword [rax + 8]
mov qword [rbp + 0x120], rax
lea rdx, [rbp + 0x128]
lea r8, [rbp + 0x118]
sub rsp, 0x20
call fcn.1401e7d82
mov rcx, qword [rbp + 0x48]
mov rax, qword [rbp + 0x70]
add rsp, 0x20
mov rdx, qword [rcx]
mov qword [rbp + 0x28], rdx
mov rcx, qword [rcx + 8]
mov qword [rbp + 0x30], rcx
cmp byte [rax], 0
jne 0x1401ec982
mov ecx, 1
mov r8d, 8
sub rsp, 0x20
mov rdx, r8
call fcn.14001d300
add rsp, 0x20
mov qword [rbp + 8], rax
movabs rcx, 0xb583c22c001d3634
movabs rax, 0xb583c22c001d362c
xor rcx, rax
movabs rdx, 0x9a34b786866de86c
movabs rax, 0x9a34b786866de864
xor rdx, rax
sub rsp, 0x20
call fcn.14001ec20
mov rcx, qword [rbp + 0x40]
add rsp, 0x20
mov qword [rbp + 0x10], rax
mov ax, 0x8e1c
xor ax, 0x8dee
mov word [rcx], ax
sub rsp, 0x20
call fcn.140070140
mov rcx, qword [rbp + 0x70]
add rsp, 0x20
mov qword [rbp + 0x18], rax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x27], al
jne 0x1401ec8fe
mov rdx, qword [rbp + 0x50]
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 + 0x108]
sub rsp, 0x20
call fcn.14001fd14
mov rax, qword [rbp + 0x10]
add rsp, 0x20
mov rdx, qword [rbp + 0x108]
mov rcx, qword [rbp + 0x110]
mov qword [rax], rdx
mov qword [rax + 8], rcx
mov ecx, 0x648
sub rsp, 0x20
call fcn.1400704f9
mov rcx, qword [rbp + 0x70]
add rsp, 0x20
mov edx, eax
mov rax, qword [rbp + 0x10]
mov dword [rax + 0x10], edx
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x27], al
jne 0x1401ec8fe
mov cx, 0xb404
xor cx, 0xbdc9
sub rsp, 0x20
call fcn.1400704f9
mov rcx, qword [rbp + 0x70]
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 + 0x27], al
jne 0x1401ec8fe
mov rax, qword [rbp + 8]
mov rcx, qword [rbp + 0x10]
mov qword [rax + 8], rcx
mov ecx, 0x3af
sub rsp, 0x20
call fcn.1400704f9
mov rcx, qword [rbp + 0x70]
add rsp, 0x20
mov dword [rbp + 4], eax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x27], al
jne 0x1401ec8fe
mov r8d, dword [rbp + 4]
mov rax, qword [rbp + 8]
mov rcx, qword [rbp + 0x30]
mov rdx, qword [rbp + 0x28]
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.1401782fd
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x70]
mov qword [rbp - 8], rcx
mov cl, byte [rax]
mov dl, 0x1c
xor dl, 0x1c
mov al, 1
cmp cl, dl
mov byte [rbp + 0x27], al
jne 0x1401ec8fe
mov r11d, dword [0x140223890]
add r11d, dword [0x140223894]
or r11d, 0x52ab2a25
mov eax, 0xa0e02fec
xor eax, 0xfd1ea96a
or r11d, eax
mov ecx, r11d
xor ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xa8a1b2b5
mov r8d, 0xc3792b6e
xor r8d, 0x92a87e54
mov eax, 0x63320869
xor eax, 0x9ccdf796
xor r8d, eax
mov eax, ecx
and eax, 0x51d1553a
and r11d, r8d
mov r9d, edx
and r9d, 0x51d1553a
mov r10d, r8d
and r10d, 0xa8a1b2b5
or eax, r11d
or r9d, r10d
xor eax, r9d
or ecx, edx
xor ecx, 0xffffffff
mov edx, 0x5cfc2777
xor edx, 0xd2d724d
or edx, r8d
and ecx, edx
or eax, ecx
mov ecx, 0x91de5f9b
xor ecx, 0x8a3af05e
cmp eax, ecx
je 0x1401ecaed
mov eax, dword [0x140223898]
mov edx, dword [0x14022389c]
mov ecx, eax
xor ecx, edx
xor edx, 0xffffffff
and eax, edx
shl eax, 1
sub eax, ecx
mov ecx, 0xc2a9dcee
xor edx, edx
div ecx
mov ecx, eax
mov eax, 0x39ae9728
xor eax, 0xb22e7015
add ecx, eax
mov edx, 0xffffffff
xor edx, 0xf3f665db
mov eax, ecx
xor eax, edx
and eax, ecx
mov dword [rbp - 0x1c], eax
mov word [rbp + 0x13c], 0x7c4
lea rcx, [rbp + 0x13c]
sub rsp, 0x20
call fcn.140070140
mov rcx, qword [rbp + 0x70]
add rsp, 0x20
mov rdx, rax
mov eax, dword [rbp - 0x1c]
mov qword [rbp - 0x18], rdx
cmp byte [rcx], 0
sete cl
mov byte [rbp - 9], cl
cmp eax, 0x63b8c9b5
jbe 0x1401ecaed
mov cl, byte [rbp - 9]
mov al, 1
test cl, 1
mov byte [rbp + 0x27], al
jne 0x1401ec589
jmp 0x1401ec8fe
mov rax, qword [rbp - 0x18]
mov rcx, qword [rax]
mov qword [rbp + 0xc8], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0xd0], rax
lea rcx, [rbp + 0xd8]
lea rdx, [rbp + 0xc8]
sub rsp, 0x20
call fcn.14001fd14
mov rdx, qword [rbp + 0x38]
add rsp, 0x20
mov rcx, qword [rbp + 0xd8]
mov rax, qword [rbp + 0xe0]
mov rdx, qword [rdx]
add rdx, 0x18
mov qword [rbp - 0x28], rdx
mov qword [rbp + 0xb8], rcx
mov qword [rbp + 0xc0], rax
lea rcx, [rbp + 0xa8]
xor edx, edx
mov r8d, 0x10
sub rsp, 0x20
call sub.msvcrt.dll_memset
mov rcx, qword [rbp - 0x28]
mov rdx, qword [rbp - 8]
add rsp, 0x20
lea r8, [rbp + 0xb8]
xor eax, eax
mov r9d, eax
lea rax, [rbp + 0xa8]
sub rsp, 0x30
mov qword [rsp + 0x20], rax
call fcn.140177f90
mov rcx, qword [rbp + 0x70]
add rsp, 0x30
mov dword [rbp - 0x20], eax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x27], al
jne 0x1401ec8fe
mov eax, dword [0x1402238a0]
xor eax, 0xc4200af3
mov edx, dword [0x1402238a4]
mov ecx, eax
and ecx, edx
shl ecx, 1
xor eax, edx
add eax, ecx
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, 0x6b3ccbfb
add ecx, eax
xor eax, eax
sub eax, ecx
mov ecx, 0xe8148cb3
xor ecx, 0xcf12c1e1
xor eax, ecx
xor ecx, ecx
sub ecx, 0x93b777e1
sub eax, ecx
cmp eax, 0x90316e4d
jae 0x1401ecaf6
mov eax, dword [0x1402238a8]
xor eax, 0x2ee7b28c
mov ecx, dword [0x1402238ac]
xor ecx, 0xbc42e6e4
or eax, ecx
xor eax, 0x4dc37e8
shr eax, 1
imul rax, rax, 0x20cee2f7
shr rax, 0x3a
mov dword [rbp - 0x30], eax
sub rsp, 0x20
mov cx, 0x959
call fcn.14006fe60
mov rcx, qword [rbp + 0x70]
mov r8d, dword [rbp - 0x20]
add rsp, 0x20
mov rdx, rax
mov eax, dword [rbp - 0x30]
mov cl, byte [rcx]
mov byte [rbp - 0x2a], cl
test cl, cl
sete cl
movsxd r8, r8d
sub rdx, r8
setl dl
and cl, dl
mov byte [rbp - 0x29], cl
cmp eax, 0xa35c076c
ja 0x1401ec695
mov al, byte [rbp - 0x2a]
mov cl, byte [rbp - 0x29]
test cl, 1
mov byte [rbp - 0x31], al
jne 0x1401ec71c
jmp 0x1401ec8f8
movabs rcx, 0x1eda0f36db5f2d19
movabs rax, 0x1eda0f36db5f2d29
xor rcx, rax
movabs rdx, 0x60b475a78f7014d3
movabs rax, 0x60b475a78f7014db
xor rdx, rax
sub rsp, 0x20
call fcn.14001ec20
add rsp, 0x20
mov qword [rbp - 0x50], rax
mov qword [rax], 0
mov dword [rax + 8], 1
mov ecx, 0x1db
sub rsp, 0x20
call fcn.1400704f9
mov rdx, qword [rbp + 0x70]
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp - 0x50]
mov dword [rax + 0xc], ecx
mov cl, 1
xor eax, eax
cmp byte [rdx], 0
mov byte [rbp - 0x41], cl
mov qword [rbp - 0x40], rax
jne 0x1401ec8bc
mov ecx, 0x20
mov edx, 8
sub rsp, 0x20
call fcn.140015160
mov rcx, qword [rbp + 0x60]
add rsp, 0x20
mov qword [rbp - 0x60], rax
mov word [rcx], 0x941
sub rsp, 0x20
call fcn.140070140
mov rdx, qword [rbp + 0x70]
add rsp, 0x20
mov qword [rbp - 0x58], rax
mov cl, 1
xor eax, eax
cmp byte [rdx], 0
mov byte [rbp - 0x41], cl
mov qword [rbp - 0x40], rax
jne 0x1401ec8bc
mov rdx, qword [rbp + 0x68]
mov rax, qword [rbp - 0x58]
mov rcx, qword [rax]
mov qword [rdx], rcx
mov rax, qword [rax + 8]
mov qword [rdx + 8], rax
lea rcx, [rbp + 0x98]
sub rsp, 0x20
call fcn.14001fd14
mov rdx, qword [rbp - 0x60]
add rsp, 0x20
mov rcx, qword [rbp + 0x98]
mov rax, qword [rbp + 0xa0]
mov qword [rdx + 8], rcx
mov qword [rdx + 0x10], rax
lea rcx, [rbp + 0x88]
sub rsp, 0x20
call fcn.140081440
mov rcx, qword [rbp - 0x50]
mov rdx, qword [rbp + 0x70]
mov rax, qword [rbp - 0x60]
add rsp, 0x20
mov r8, qword [rbp + 0x88]
mov qword [rcx + 0x10], r8
mov r8, qword [rbp + 0x90]
mov qword [rcx + 0x18], r8
mov cl, 1
cmp byte [rdx], 0
mov byte [rbp - 0x41], cl
mov qword [rbp - 0x40], rax
jne 0x1401ec8bc
mov rdx, qword [rbp - 0x50]
mov rax, qword [rbp + 0x38]
mov rcx, qword [0x14022d568]
mov qword [rdx + 0x20], rcx
mov rcx, qword [0x14022d570]
mov qword [rdx + 0x28], rcx
mov rax, qword [rax]
mov rcx, qword [rax + 0x20]
add rcx, 8
sub rsp, 0x20
call fcn.14002c7a0
mov rcx, qword [rbp + 0x70]
mov rax, qword [rbp - 0x60]
add rsp, 0x20
mov cl, byte [rcx]
mov byte [rbp - 0x41], cl
mov qword [rbp - 0x40], rax
mov rax, qword [rbp + 0x70]
mov dl, byte [rbp - 0x41]
mov rcx, qword [rbp - 0x40]
mov byte [rbp - 0x61], dl
mov byte [rax], 0
sub rsp, 0x20
call fcn.1401e5c53
mov rcx, qword [rbp + 0x70]
add rsp, 0x20
mov al, 1
cmp byte [rcx], 0
mov byte [rbp - 0x31], al
jne 0x1401ec8f8
mov al, byte [rbp - 0x61]
mov rcx, qword [rbp + 0x70]
mov byte [rcx], al
mov byte [rbp - 0x31], al
mov al, byte [rbp - 0x31]
mov byte [rbp + 0x27], al
mov rcx, qword [rbp + 0x30]
mov al, byte [rbp + 0x27]
mov byte [rbp - 0x63], al
cmp rcx, 0
mov byte [rbp - 0x62], al
je 0x1401ec977
mov al, byte [rbp - 0x63]
mov rcx, qword [rbp + 0x30]
mov rcx, qword [rcx]
mov rdx, rcx
add rdx, 1
xor rcx, 0xffffffffffffffff
movabs r8, 0x4000000000000000
or rcx, r8
add rcx, rdx
movabs rdx, 0x8a0b671135f21830
movabs r8, 0x8a0b671135f21830
xor rdx, r8
cmp rcx, rdx
mov byte [rbp - 0x62], al
jne 0x1401ec977
mov rcx, qword [rbp + 0x30]
sub rsp, 0x20
call fcn.140010918
mov rax, qword [rbp + 0x70]
add rsp, 0x20
mov al, byte [rax]
mov byte [rbp - 0x62], al
mov al, byte [rbp - 0x62]
cmp al, 0
je 0x1401ecae4
sub rsp, 0x20
call fcn.1401e7dfe
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp - 0x70], rax
cmp word [rax + 0x12], 1
jle 0x1401ecae4
mov rax, qword [rbp - 0x70]
mov rax, qword [rax + 0x18]
cmp dword [rax + 8], 0xc5722261
jne 0x1401ecae4
mov rax, qword [rbp + 0x70]
mov cl, 3
xor cl, 3
mov byte [rax], cl
sub rsp, 0x20
call fcn.1401e7e10
add rsp, 0x20
mov rcx, rax
sub rsp, 0x20
call fcn.1400a4060
mov rax, qword [rbp + 0x70]
add rsp, 0x20
cmp byte [rax], 0
jne 0x1401ecae4
mov eax, dword [0x1402238b0]
xor eax, 0xe77a60f3
mov edx, dword [0x1402238b4]
mov r8d, 0x54cee94e
xor r8d, 0xab3116b1
mov ecx, eax
xor ecx, r8d
and ecx, edx
xor edx, 0xffffffff
and eax, edx
sub eax, ecx
xor eax, 0xfdcd150b
mov ecx, eax
xor ecx, 0x53707262
mov edx, 0xffffffff
xor edx, 0x53707262
and eax, edx
shl eax, 1
sub eax, ecx
mov ecx, 0xd4c4ae29
xor ecx, 0x9322f66e
add eax, ecx
mov ecx, 0x9f37b6e3
xor ecx, 0xf71605d5
sub eax, ecx
sub eax, 0x47e65847
cmp eax, 0x2a1055fc
jb 0x1401ecaff
mov eax, dword [0x1402238b8]
mov ecx, dword [0x1402238bc]
add eax, 0x3ee899fb
sub eax, ecx
mov ecx, 0xcc771042
xor ecx, 0xf29f89b9
sub eax, ecx
xor eax, 0x689c68e6
mov r8d, 0xffffffff
xor r8d, 0x77a60447
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x77a60447
or eax, 0x77a60447
imul eax, edx
add eax, ecx
mov ecx, 0xb14f4f7f
xor ecx, 0xc05bce7b
or eax, ecx
mov dword [rbp - 0x74], eax
sub rsp, 0x20
call fcn.1401e7e3d
mov eax, dword [rbp - 0x74]
add rsp, 0x20
cmp eax, 0xee8d8299
jbe 0x1401eca60
jmp 0x1401ecae4
lea rsp, [rbp + 0x140]
pop rbp
ret
push rsi
jmp 0x1401ec4ef
pushfq
sbb dword [rcx - 5], ebp
jmp 0x1401ec695
mov cl, 0x41
loopne 0x1401ecaec
jmp 0x1401eca60