Function at 0x1401ac570
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x1b0
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x48], rcx
mov eax, 0x10
mov qword [rbp + 0x70], rax
call fcn.1401d7280
sub rsp, rax
mov rax, qword [rbp + 0x70]
mov rcx, rsp
mov qword [rbp + 0x50], rcx
call fcn.1401d7280
sub rsp, rax
mov rax, qword [rbp + 0x70]
mov rcx, rsp
mov qword [rbp + 0x58], rcx
call fcn.1401d7280
sub rsp, rax
mov rax, qword [rbp + 0x70]
mov rcx, rsp
mov qword [rbp + 0x60], rcx
call fcn.1401d7280
sub rsp, rax
mov rax, qword [rbp + 0x70]
mov rcx, rsp
mov qword [rbp + 0x68], rcx
call fcn.1401d7280
sub rsp, rax
mov rax, qword [rbp + 0x70]
mov rcx, rsp
mov qword [rbp + 0x78], rcx
call fcn.1401d7280
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x80], rax
sub rsp, 0x20
call fcn.1401b4265
add rsp, 0x20
mov qword [rbp + 0x90], rax
add rax, 0x60
mov qword [rbp + 0x88], rax
mov word [rbp + 0x12e], 0x171
lea rcx, [rbp + 0x12e]
sub rsp, 0x20
call fcn.140065650
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x90]
mov qword [rbp + 0x98], rcx
cmp byte [rax + 0x60], 0
jne 0x1401acff5
mov rdx, qword [rbp + 0x50]
mov rax, qword [rbp + 0x98]
mov rcx, qword [0x1401eea38]
mov r8, qword [rcx]
mov qword [rdx], r8
mov rcx, qword [rcx + 8]
mov qword [rdx + 8], rcx
mov rcx, qword [rax]
mov qword [rbp + 0x108], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x110], rax
lea rcx, [rbp + 0x118]
lea r8, [rbp + 0x108]
sub rsp, 0x20
call fcn.1401aa01b
mov rax, qword [rbp + 0x88]
add rsp, 0x20
mov rcx, qword [rbp + 0x118]
mov qword [rbp + 0x38], rcx
mov rcx, qword [rbp + 0x120]
mov qword [rbp + 0x40], rcx
cmp byte [rax], 0
jne 0x1401acff5
mov ecx, 1
mov r8d, 8
sub rsp, 0x20
mov rdx, r8
call fcn.14000fb25
add rsp, 0x20
mov qword [rbp + 0x18], rax
mov ecx, 0x18
mov edx, 8
sub rsp, 0x20
call fcn.14001b340
add rsp, 0x20
mov qword [rbp + 0x20], rax
mov word [rbp + 0x12c], 0x76d
lea rcx, [rbp + 0x12c]
sub rsp, 0x20
call fcn.140065650
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x88]
mov qword [rbp + 0x28], rcx
mov cl, byte [rax]
mov dl, 0x88
xor dl, 0x88
mov al, 1
cmp cl, dl
mov byte [rbp + 0x37], al
jne 0x1401acf29
mov rcx, qword [rbp + 0x58]
mov rax, qword [rbp + 0x28]
mov rdx, qword [rax]
mov qword [rbp + 0xf8], rdx
mov rax, qword [rax + 8]
mov qword [rbp + 0x100], rax
lea rdx, [rbp + 0xf8]
sub rsp, 0x20
call fcn.14001b4f8
mov rcx, qword [rbp + 0x58]
mov rax, qword [rbp + 0x20]
add rsp, 0x20
mov rdx, qword [rcx]
mov rcx, qword [rcx + 8]
mov qword [rax], rdx
mov qword [rax + 8], rcx
mov ecx, 0x8f0
sub rsp, 0x20
call fcn.140065c5f
mov rcx, qword [rbp + 0x88]
add rsp, 0x20
mov edx, eax
mov rax, qword [rbp + 0x20]
mov dword [rax + 0x10], edx
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x37], al
jne 0x1401acf29
mov cx, 0xc545
xor cx, 0xc15b
sub rsp, 0x20
call fcn.140065c5f
mov rcx, qword [rbp + 0x88]
add rsp, 0x20
mov edx, eax
mov rax, qword [rbp + 0x20]
mov dword [rax + 0x14], edx
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x37], al
jne 0x1401acf29
mov rax, qword [rbp + 0x18]
mov rcx, qword [rbp + 0x20]
mov qword [rax + 8], rcx
mov ecx, 0x138
sub rsp, 0x20
call fcn.140065c5f
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp + 0x88]
mov dword [rbp + 0x14], ecx
mov cl, byte [rax]
mov dl, 0xd4
xor dl, 0xd4
mov al, 1
cmp cl, dl
mov byte [rbp + 0x37], al
jne 0x1401acf29
mov r8d, dword [0x1401e3580]
mov eax, dword [0x1401e3584]
xor eax, 0xeb33ee69
add r8d, eax
mov ecx, 0xfad9337c
xor ecx, 0x526cc83
mov eax, r8d
xor eax, ecx
mov ecx, 0x31322996
xor ecx, 0x8431b8da
and ecx, eax
mov edx, 0x3f4514b4
xor edx, 0x8a4685f8
mov eax, 0xb945fa5a
xor eax, 0x46ba05a5
xor edx, eax
mov eax, r8d
and eax, edx
imul eax, ecx
mov ecx, r8d
and ecx, 0xb503914c
or r8d, 0xb503914c
imul r8d, ecx
add r8d, eax
mov eax, r8d
add eax, 1
mov ecx, 0xcbba7f51
xor ecx, 0x344580ae
xor r8d, ecx
or r8d, 0x11977db7
add r8d, eax
mov eax, r8d
xor eax, 0xffffffff
and eax, 0x8aaa2f3
mov edx, 0xffffffff
xor edx, 0x8aaa2f3
and r8d, edx
mov ecx, 0xffffffff
xor ecx, 0x187bb6b9
and ecx, 0x8aaa2f3
and edx, 0x187bb6b9
or eax, r8d
or ecx, edx
xor eax, ecx
cmp eax, 0xb9d22a8b
ja 0x1401ad1e6
mov r8d, dword [rbp + 0x14]
mov rdx, qword [rbp + 0x68]
mov rcx, qword [rbp + 0x60]
mov rax, qword [rbp + 0x18]
mov r9, qword [rbp + 0x40]
mov r10, qword [rbp + 0x38]
mov edi, dword [0x1401e3588]
xor edi, 0xc1be8744
mov r11d, dword [0x1401e358c]
mov esi, 0x87e6f334
xor esi, 0x8106dbd0
xor r11d, esi
xor edi, r11d
mov r11d, 0x46f34955
xor r11d, 0x46f34955
mov esi, 0x2fe45421
xor esi, 0x4b1e96e7
sub r11d, esi
add edi, r11d
mov esi, edi
xor esi, 0x5a4bbc6e
mov r11d, 0xffffffff
xor r11d, 0x5a4bbc6e
and edi, r11d
mov r11d, 0xf05e52b
xor r11d, 0xf05e529
imul r11d, edi
sub r11d, esi
xor esi, esi
sub esi, 0xa96c5744
sub r11d, esi
mov dword [rbp + 4], r11d
mov qword [rcx], r10
mov qword [rcx + 8], r9
mov qword [rdx], 1
mov qword [rdx + 8], rax
sub rsp, 0x20
call fcn.1401397f0
mov rcx, qword [rbp + 0x88]
add rsp, 0x20
mov rdx, rax
mov eax, dword [rbp + 4]
mov qword [rbp + 8], rdx
cmp byte [rcx], 0
sete cl
mov byte [rbp + 0x13], cl
cmp eax, 0x5f738470
jb 0x1401ac8f7
mov cl, byte [rbp + 0x13]
mov al, 1
test cl, 1
mov byte [rbp + 0x37], al
jne 0x1401ac9e6
jmp 0x1401acf29
mov ax, 0x5f0c
xor ax, 0x5e24
mov word [rbp + 0x12a], ax
lea rcx, [rbp + 0x12a]
sub rsp, 0x20
call fcn.140065650
mov rcx, qword [rbp + 0x88]
add rsp, 0x20
mov qword [rbp - 8], rax
mov al, 1
cmp byte [rcx], 0
mov byte [rbp + 0x37], al
jne 0x1401acf29
mov eax, dword [0x1401e3590]
mov edx, dword [0x1401e3594]
mov ecx, 0x624ea2ff
xor ecx, 0x624ea2ff
sub ecx, edx
sub eax, ecx
add eax, 0xb30c3261
sub eax, 0xcd9972b0
mov ecx, 0x12773105
xor ecx, 0xa17b0364
sub eax, ecx
and eax, 0x9c607044
mov ecx, 0x8e5c64a3
xor ecx, 0x2162c7c0
xor edx, edx
div ecx
mov ecx, 0x1e2298c
xor ecx, 0x93affc85
cmp eax, ecx
ja 0x1401ad1ef
mov rax, qword [rbp - 8]
mov edx, dword [0x1401e3598]
mov r8d, dword [str.9q_n_]
mov ecx, 0x7b893ae3
xor ecx, 0xbb12c7ec
xor r8d, ecx
xor ecx, ecx
sub ecx, edx
xor edx, edx
sub edx, r8d
add ecx, edx
xor edx, edx
sub edx, ecx
mov ecx, edx
and ecx, 0x379d3eb9
mov r8d, 0x9418b581
xor r8d, 0xa3858b38
or edx, r8d
add ecx, edx
mov edx, 0xbef4cc0
xor edx, 0xc7c0620d
or ecx, edx
mov edx, ecx
and edx, 0x15718576
shl edx, 1
xor ecx, 0x15718576
add ecx, edx
mov dword [rbp - 0x14], ecx
mov rcx, qword [rax]
mov qword [rbp + 0xd8], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0xe0], rax
lea rcx, [rbp + 0xe8]
lea rdx, [rbp + 0xd8]
sub rsp, 0x20
call fcn.14001b4f8
mov r9, qword [rbp + 0x48]
mov rax, qword [rbp + 0x78]
mov rcx, qword [rbp + 0x80]
add rsp, 0x20
mov r8, qword [rbp + 0xe8]
mov rdx, qword [rbp + 0xf0]
mov r9, qword [r9]
add r9, 0x18
mov qword [rbp - 0x20], r9
mov qword [rax], r8
mov qword [rax + 8], rdx
xor edx, edx
mov r8d, 0x10
sub rsp, 0x20
call sub.msvcrt.dll_memset
mov rcx, qword [rbp - 0x20]
mov rdx, qword [rbp + 8]
mov r8, qword [rbp + 0x78]
mov rax, qword [rbp + 0x80]
add rsp, 0x20
xor r9d, r9d
sub rsp, 0x30
mov qword [rsp + 0x20], rax
call fcn.140139430
mov rcx, qword [rbp + 0x88]
add rsp, 0x30
mov edx, eax
mov eax, dword [rbp - 0x14]
mov dword [rbp - 0x10], edx
cmp byte [rcx], 0
sete cl
mov byte [rbp - 9], cl
cmp eax, 0xa7f01f55
jb 0x1401aca7b
mov cl, byte [rbp - 9]
mov al, 1
test cl, 1
mov byte [rbp + 0x37], al
jne 0x1401acbbb
jmp 0x1401acf29
sub rsp, 0x20
mov cx, 0x9ee
call fcn.1400654f7
mov r8d, dword [rbp - 0x10]
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp + 0x88]
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 - 0x21], al
jne 0x1401acbfd
jmp 0x1401acf23
movabs rcx, 0x881a06cc16af6160
movabs rax, 0x881a06cc16af6150
xor rcx, rax
movabs rdx, 0x591ed6f8912285db
movabs rax, 0x591ed6f8912285d3
xor rdx, rax
sub rsp, 0x20
call fcn.14001b340
add rsp, 0x20
mov qword [rbp - 0x40], rax
mov qword [rax], 0
mov dword [rax + 8], 1
mov ecx, 0x8d4
sub rsp, 0x20
call fcn.140065c5f
mov rdx, qword [rbp + 0x88]
add rsp, 0x20
mov ecx, eax
mov rax, qword [rbp - 0x40]
mov dword [rax + 0xc], ecx
mov cl, 1
xor eax, eax
cmp byte [rdx], 0
mov byte [rbp - 0x31], cl
mov qword [rbp - 0x30], rax
jne 0x1401acdc3
mov ecx, 0x20
mov edx, 8
sub rsp, 0x20
call fcn.140012010
add rsp, 0x20
mov qword [rbp - 0x50], rax
mov word [rbp + 0xd6], 0x314
lea rcx, [rbp + 0xd6]
sub rsp, 0x20
call fcn.140065650
mov rdx, qword [rbp + 0x88]
add rsp, 0x20
mov qword [rbp - 0x48], rax
mov cl, 1
xor eax, eax
cmp byte [rdx], 0
mov byte [rbp - 0x31], cl
mov qword [rbp - 0x30], rax
jne 0x1401acdc3
mov rax, qword [rbp - 0x48]
mov rcx, qword [rax]
mov qword [rbp + 0xb0], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0xb8], rax
lea rcx, [rbp + 0xc0]
lea rdx, [rbp + 0xb0]
sub rsp, 0x20
call fcn.14001b4f8
mov rdx, qword [rbp - 0x50]
add rsp, 0x20
mov rcx, qword [rbp + 0xc0]
mov rax, qword [rbp + 0xc8]
mov qword [rdx + 8], rcx
mov qword [rdx + 0x10], rax
lea rcx, [rbp + 0xa0]
sub rsp, 0x20
call fcn.140074290
mov rdx, qword [rbp - 0x40]
mov rcx, qword [rbp + 0x88]
mov rax, qword [rbp - 0x50]
add rsp, 0x20
mov r8, qword [rbp + 0xa0]
mov qword [rdx + 0x10], r8
mov r8, qword [rbp + 0xa8]
mov qword [rdx + 0x18], r8
mov dl, byte [rcx]
mov r8b, 0xd8
xor r8b, 0xd8
mov cl, 1
cmp dl, r8b
mov byte [rbp - 0x31], cl
mov qword [rbp - 0x30], rax
jne 0x1401acdc3
mov rdx, qword [rbp - 0x40]
mov rax, qword [rbp + 0x48]
mov rcx, qword [0x1401ee2c8]
mov qword [rdx + 0x20], rcx
mov rcx, qword [0x1401ee2d0]
mov qword [rdx + 0x28], rcx
mov rax, qword [rax]
mov rcx, qword [rax + 0x20]
add rcx, 8
sub rsp, 0x20
call fcn.140025090
mov rcx, qword [rbp + 0x88]
mov rax, qword [rbp - 0x50]
add rsp, 0x20
mov cl, byte [rcx]
mov byte [rbp - 0x31], cl
mov qword [rbp - 0x30], rax
mov al, byte [rbp - 0x31]
mov rcx, qword [rbp - 0x30]
mov qword [rbp - 0x60], rcx
mov byte [rbp - 0x51], al
mov eax, dword [0x1401e35a0]
mov r8d, dword [0x1401e35a4]
mov edx, 0xb87f516c
xor edx, 0x4780ae93
mov ecx, eax
xor ecx, edx
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, 0xdc3aec33
xor ecx, 0x10eb8918
imul eax, ecx
imul eax, eax, 0x33be9f5f
mov ecx, 0x6784f6d9
xor ecx, 0xcdfcdf4a
mov edx, 0x8a8e740e
xor edx, 0x75718bf1
xor ecx, edx
add eax, ecx
mov ecx, 0x17ed81c
xor ecx, 0x17ed81d
add eax, ecx
cmp eax, 0xb86f5c23
je 0x1401ad1f8
mov rax, qword [rbp + 0x88]
mov rcx, qword [rbp - 0x60]
mov r10d, dword [0x1401e35a8]
add r10d, dword [0x1401e35ac]
and r10d, 0xc65ccdb3
xor r10d, 0xa3d20ace
mov edx, r10d
xor edx, 0xffffffff
and edx, 0x31767f46
mov r11d, 0xffffffff
xor r11d, 0x31767f46
and r10d, r11d
mov r8d, 0xffffffff
xor r8d, 0x9ad053b8
mov r9d, 0x6ce75688
xor r9d, 0x5d9129ce
and r8d, r9d
mov r9d, 0x11f468c
xor r9d, 0x9bcf1534
and r9d, r11d
or edx, r10d
or r8d, r9d
xor edx, r8d
mov dword [rbp - 0x68], edx
mov byte [rax], 0
sub rsp, 0x20
call fcn.1401a7690
mov rcx, qword [rbp + 0x88]
mov eax, dword [rbp - 0x68]
add rsp, 0x20
cmp byte [rcx], 0
sete cl
mov byte [rbp - 0x61], cl
cmp eax, 0xed9fedfb
je 0x1401ace54
mov cl, byte [rbp - 0x61]
mov al, 1
test cl, 1
mov byte [rbp - 0x21], al
jne 0x1401acf14
jmp 0x1401acf23
mov al, byte [rbp - 0x51]
mov rcx, qword [rbp + 0x88]
mov byte [rcx], al
mov byte [rbp - 0x21], al
mov al, byte [rbp - 0x21]
mov byte [rbp + 0x37], al
mov rcx, qword [rbp + 0x40]
mov al, byte [rbp + 0x37]
mov byte [rbp - 0x6a], al
cmp rcx, 0
mov byte [rbp - 0x69], al
je 0x1401acfea
mov al, byte [rbp - 0x6a]
mov rcx, qword [rbp + 0x40]
mov rdx, qword [rcx]
movabs r8, 0xc172f3811517249f
movabs rcx, 0x3e8d0c7eeae8db60
xor r8, rcx
mov rcx, rdx
xor rcx, r8
movabs r8, 0x2edbfc246dcb1c33
movabs r9, 0xd12403db9234e3cc
xor r8, r9
xor rdx, r8
and rcx, rdx
movabs rdx, 0x4000000000000000
movabs r8, 0x4000000000000000
or rdx, r8
xor rdx, 0xffffffffffffffff
xor rcx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
and rcx, rdx
movabs rdx, 0xf7637626105043c6
movabs r8, 0xf7637626105043c6
xor rdx, r8
cmp rcx, rdx
mov byte [rbp - 0x69], al
jne 0x1401acfea
mov rcx, qword [rbp + 0x40]
sub rsp, 0x20
call fcn.14000de03
mov rax, qword [rbp + 0x88]
add rsp, 0x20
mov al, byte [rax]
mov byte [rbp - 0x69], al
mov al, byte [rbp - 0x69]
cmp al, 0
je 0x1401ad1db
sub rsp, 0x20
call fcn.1401aa097
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp - 0x78], rax
mov ax, word [rax + 0x12]
mov cx, 0x3ba7
xor cx, 0x3ba6
cmp ax, cx
jle 0x1401ad1db
mov eax, dword [0x1401e35b0]
xor eax, 0x3231c7fe
or eax, dword [0x1401e35b4]
imul eax, eax, 0xa8cbbbc3
sub eax, 0x9b20c0ec
mov ecx, 0x765c071e
xor ecx, 0x89a3f8e1
mov edx, eax
xor edx, ecx
and edx, 0xb8681a3a
mov r8d, 0xdabd3a36
xor r8d, 0x62d5200c
mov ecx, 0x879c17d3
xor ecx, 0x7863e82c
xor r8d, ecx
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov r8d, 0xe82e7067
xor r8d, 0x50466a5d
mov edx, eax
and edx, r8d
or eax, 0xb8681a3a
imul eax, edx
add eax, ecx
cmp eax, 0xa8e8e083
je 0x1401ad201
mov rcx, qword [rbp - 0x78]
mov r9d, dword [0x1401e35b8]
xor r9d, 0x21f7531d
mov r8d, dword [0x1401e35bc]
mov eax, 0x84652c47
xor eax, 0x7b9ad3b8
mov r10d, r8d
xor r10d, eax
mov edx, r9d
and edx, r10d
mov eax, r9d
or eax, r10d
xor eax, 0xffffffff
imul eax, edx
mov edx, r9d
and edx, r8d
or r9d, r8d
imul r9d, edx
add r9d, eax
and r9d, 0xd41db39a
mov eax, 0x9c78a1df
xor eax, 0xeb7d1d57
and r9d, eax
mov eax, 0x3003248
xor eax, 0xfcffcdb7
mov edx, r9d
xor edx, eax
mov eax, 0x7b39caa6
xor eax, 0x1d941c01
and eax, edx
mov r10d, 0xffffffff
xor r10d, 0x66add6a7
and r9d, r10d
mov edx, 0x479e2b5c
xor edx, 0x46c6f6d3
mov r8d, 0xfe440005
xor r8d, 0x1bbfffa
xor edx, r8d
mov r8d, 0x4a9aab56
xor r8d, 0x2c377df1
and edx, r8d
mov r8d, 0x78bfa9cc
xor r8d, 0x79e77443
and r8d, r10d
or eax, r9d
or edx, r8d
xor eax, edx
mov rcx, qword [rcx + 0x18]
cmp dword [rcx + 8], 0xd4054986
sete cl
mov byte [rbp - 0x79], cl
cmp eax, 0xe5a3d79
je 0x1401ad201
mov al, byte [rbp - 0x79]
test al, 1
jne 0x1401ad193
jmp 0x1401ad1db
mov rax, qword [rbp + 0x88]
mov cl, 0x15
xor cl, 0x15
mov byte [rax], cl
sub rsp, 0x20
call fcn.1401aa0a9
add rsp, 0x20
mov rcx, rax
sub rsp, 0x20
call fcn.14009428e
mov rax, qword [rbp + 0x88]
add rsp, 0x20
cmp byte [rax], 0
jne 0x1401ad1db
sub rsp, 0x20
call fcn.1401aa0fd
add rsp, 0x20
lea rsp, [rbp + 0x130]
pop rdi
pop rsi
pop rbp
ret
hlt
pop rsi
movabs dword [0xeafffff883e9938f], eax
out dx, al
stosb byte [rdi], al
mov cl, 0xe9
push rbx
cld
invalid
invalid
sub dword [rbx - 0x67], ebx
invalid