Function at 0x140012ca0
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
mov eax, 0x1148
call fcn.14005bc30
sub rsp, rax
mov qword [rsp + 0x40], r8
mov qword [rsp + 0x38], rdx
mov r14, rcx
lea rax, [0x141dcc68a]
mov qword [rsp + 0x148], rax
lea rax, [rsp + 0x148]
mov rcx, qword [rsp + 0x148]
movabs rax, 0x27528515aa268c52
mov qword [rsp + 0x148], rax
lea rax, [rsp + 0x148]
mov rdx, qword [rsp + 0x148]
call fcn.140007460
mov esi, dword [rax]
movzx edi, word [rax + 4]
movzx ebx, byte [rax + 6]
movzx eax, byte [0x141dd7110]
mov edx, 7
xor ecx, ecx
call fcn.140040e10
test rax, rax
je 0x140013c04
mov r13, rax
mov qword [rsp + 0x30], r14
shl ebx, 0x10
or edi, ebx
mov eax, edi
shr eax, 0x10
xor al, 0x25
movzx eax, al
mov byte [r13 + 6], al
shl rax, 0x30
mov ecx, edi
shr ecx, 8
xor cl, 0xda
movzx ecx, cl
shl rcx, 0x28
or rcx, rax
xor dil, 0x67
movzx eax, dil
shl rax, 0x20
or rax, rcx
xor esi, 0x894f1fdd
mov dword [r13], esi
shr rax, 0x20
mov word [r13 + 4], ax
lea rax, [0x141dbcd46]
mov qword [rsp + 0x148], rax
lea rax, [rsp + 0x148]
mov rcx, qword [rsp + 0x148]
movabs rax, 0x6d815e9529c25532
mov qword [rsp + 0x148], rax
lea rax, [rsp + 0x148]
mov rdx, qword [rsp + 0x148]
call fcn.1400077a0
mov esi, dword [rax]
movzx ebx, byte [rax + 4]
movzx eax, byte [0x141dd7110]
mov edx, 5
xor ecx, ecx
call fcn.140040e10
test rax, rax
je 0x140013c04
mov r12, rax
xor bl, 0x1c
xor esi, 0xd96bf9b2
mov byte [rax + 4], bl
mov dword [rax], esi
lea rax, [0x141dc335f]
mov qword [rsp + 0x148], rax
lea rax, [rsp + 0x148]
mov rcx, qword [rsp + 0x148]
movabs rax, 0x45858ab0a818f3e
mov qword [rsp + 0x148], rax
lea rax, [rsp + 0x148]
mov rdx, qword [rsp + 0x148]
call fcn.140007c00
mov esi, dword [rax]
movzx edi, word [rax + 4]
movzx ebx, byte [rax + 6]
movzx eax, byte [0x141dd7110]
mov edx, 7
xor ecx, ecx
call fcn.140040e10
test rax, rax
je 0x140013c04
mov r14, rax
shl ebx, 0x10
or edi, ebx
mov eax, edi
shr eax, 0x10
xor al, 0xda
movzx eax, al
mov byte [r14 + 6], al
shl rax, 0x30
mov ecx, edi
shr ecx, 8
xor cl, 0x78
movzx ecx, cl
shl rcx, 0x28
or rcx, rax
xor dil, 0x3d
movzx eax, dil
shl rax, 0x20
or rax, rcx
xor esi, 0x9fd37340
mov dword [r14], esi
shr rax, 0x20
mov word [r14 + 4], ax
lea rax, [0x141dc285e]
mov qword [rsp + 0x148], rax
lea rax, [rsp + 0x148]
mov rcx, qword [rsp + 0x148]
movabs rax, 0x2265cb0a81718732
mov qword [rsp + 0x148], rax
lea rax, [rsp + 0x148]
mov rdx, qword [rsp + 0x148]
call fcn.140007980
mov rsi, qword [rax]
movzx ebx, byte [rax + 8]
movzx eax, byte [0x141dd7110]
mov edx, 9
xor ecx, ecx
call fcn.140040e10
test rax, rax
je 0x140013c04
mov r15, rax
xor bl, 0x2c
movabs rax, 0x72a29b49711fb5bd
xor rsi, rax
mov qword [r15], rsi
mov byte [r15 + 8], bl
lea rax, [0x141dbd164]
mov qword [rsp + 0x148], rax
lea rax, [rsp + 0x148]
mov rcx, qword [rsp + 0x148]
movabs rax, 0xf3da964ef19b9a01
mov qword [rsp + 0x148], rax
lea rax, [rsp + 0x148]
mov rdx, qword [rsp + 0x148]
call fcn.140007e70
mov esi, dword [rax]
movzx edi, word [rax + 4]
movzx ebx, byte [rax + 6]
movzx eax, byte [0x141dd7110]
mov edx, 7
xor ecx, ecx
call fcn.140040e10
test rax, rax
je 0x140013c04
mov rbp, rax
shl ebx, 0x10
or edi, ebx
mov eax, edi
shr eax, 0x10
xor al, 0x2d
movzx eax, al
mov byte [rbp + 6], al
shl rax, 0x30
mov ecx, edi
shr ecx, 8
xor cl, 0xeb
movzx ecx, cl
shl rcx, 0x28
or rcx, rax
xor dil, 0xc
movzx eax, dil
shl rax, 0x20
or rax, rcx
xor esi, 0x7fcd431
mov dword [rbp], esi
shr rax, 0x20
mov word [rbp + 4], ax
lea rax, [0x141dc48d8]
mov qword [rsp + 0x148], rax
lea rax, [rsp + 0x148]
mov rcx, qword [rsp + 0x148]
movabs rax, 0x1f2deaed0ce535ec
mov qword [rsp + 0x148], rax
lea rax, [rsp + 0x148]
mov rdx, qword [rsp + 0x148]
call fcn.140007410
mov esi, dword [rax]
movzx ebx, byte [rax + 4]
movzx eax, byte [0x141dd7110]
mov edx, 5
xor ecx, ecx
call fcn.140040e10
test rax, rax
je 0x140013c04
xor bl, 0x18
xor esi, 0x1ede8f8f
mov byte [rax + 4], bl
mov qword [rsp + 0x60], rax
mov dword [rax], esi
lea rax, [0x141dbfd9c]
mov qword [rsp + 0x148], rax
lea rax, [rsp + 0x148]
mov rcx, qword [rsp + 0x148]
movabs rax, 0x4f3459067c405aa1
mov qword [rsp + 0x148], rax
lea rax, [rsp + 0x148]
mov rdx, qword [rsp + 0x148]
call fcn.140006ec0
mov rsi, qword [rax]
movzx eax, byte [0x141dd7110]
mov edx, 8
xor ecx, ecx
call fcn.140040e10
test rax, rax
je 0x140013c04
mov rbx, rax
movabs rax, 0x38e94853e6410dcf
xor rsi, rax
mov qword [rbx], rsi
lea rax, [0x141dc8e4b]
mov qword [rsp + 0x148], rax
lea rax, [rsp + 0x148]
mov rcx, qword [rsp + 0x148]
movabs rax, 0x504d140c227d363d
mov qword [rsp + 0x148], rax
lea rax, [rsp + 0x148]
mov rdx, qword [rsp + 0x148]
call fcn.1400079e0
mov esi, dword [rax]
movzx edi, word [rax + 4]
movzx eax, byte [0x141dd7110]
mov edx, 6
xor ecx, ecx
call fcn.140040e10
test rax, rax
je 0x140013c04
mov ecx, edi
shr ecx, 8
xor cl, 0xc8
movzx edx, cl
shl rdx, 0x28
xor dil, 0xb
movzx ecx, dil
shl rcx, 0x20
or rcx, rdx
xor esi, 0x48c3fee4
mov dword [rax], esi
shr rcx, 0x20
mov word [rax + 4], cx
movzx ecx, byte [0x141dd7110]
mov edx, pe_nt_image_headers64
xor ecx, ecx
mov rsi, rax
call fcn.140040e10
test rax, rax
je 0x140013c04
mov rdi, rax
mov qword [rax], r13
mov qword [rax + 8], 7
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], 5
mov qword [rax + 0x20], r14
mov qword [rax + 0x28], 7
mov qword [rax + 0x30], r15
mov qword [rax + 0x38], 9
mov qword [rax + 0x40], rbp
mov qword [rax + 0x48], 7
mov rax, qword [rsp + 0x60]
mov qword [rdi + 0x50], rax
mov qword [rdi + 0x58], 5
mov qword [rdi + 0x60], rbx
mov qword [rdi + 0x68], 8
mov qword [rsp + 0xc0], rsi
mov qword [rdi + 0x70], rsi
mov qword [rdi + 0x78], 6
call fcn.140029310
test rax, rax
je 0x140013c04
mov rsi, qword [rax]
inc qword [rsi]
je 0x140013c04
mov rax, qword [rsi + 0x110]
cmp rax, 0x3f
jbe 0x14001326b
lea rdx, [rsi + 0x10]
lea rcx, [rsi + 0x120]
mov rax, qword [rsi + 0x158]
test rax, rax
jle 0x140013264
cmp qword [rsi + 0x160], 0
js 0x140013264
add rax, 0xffffffffffffff00
mov qword [rsi + 0x158], rax
call fcn.140029670
jmp 0x140013269
call fcn.140005710
xor eax, eax
mov qword [rsp + 0x98], rbx
mov qword [rsp + 0xb0], r14
lea rcx, [rax + 1]
cmp dword [rsi + rax*4 + 0x10], 0
mov qword [rsp + 0x58], rsi
mov qword [rsi + 0x110], rcx
mov qword [rsp + 0xa0], rbp
mov qword [rsp + 0xb8], r12
mov qword [rsp + 0xa8], r15
js 0x140013347
lea rax, [0x141dc0e96]
mov qword [rsp + 0x148], rax
lea rax, [rsp + 0x148]
mov rcx, qword [rsp + 0x148]
movabs rax, 0x17af4eda3a5675ce
mov qword [rsp + 0x148], rax
lea rax, [rsp + 0x148]
mov rdx, qword [rsp + 0x148]
call fcn.140006da0
mov r14, qword [rax]
mov rsi, qword [rax + 8]
movzx eax, byte [0x141dd7110]
mov ebx, 0x10
mov edx, 0x10
xor ecx, ecx
call fcn.140040e10
test rax, rax
je 0x140013c04
movabs rcx, 0xf740f2658c322e3f
xor rsi, rcx
movabs rcx, 0xae1931cf4854ddd8
xor r14, rcx
mov qword [rax], r14
mov qword [rsp + 0x48], rax
mov qword [rax + 8], rsi
jmp 0x140013404
lea rax, [0x141dc2e73]
mov qword [rsp + 0x148], rax
lea rax, [rsp + 0x148]
mov rcx, qword [rsp + 0x148]
movabs rax, 0x47e8fbac53ba230c
mov qword [rsp + 0x148], rax
lea rax, [rsp + 0x148]
mov rdx, qword [rsp + 0x148]
call fcn.140007820
mov r14, qword [rax]
mov ebp, dword [rax + 8]
movzx esi, word [rax + 0xc]
movzx r15d, byte [rax + 0xe]
movzx eax, byte [0x141dd7110]
mov ebx, 0xf
mov edx, 0xf
xor ecx, ecx
call fcn.140040e10
test rax, rax
je 0x140013c04
shl r15d, 0x10
or esi, r15d
mov r8d, esi
shr r8d, 0x10
xor r8b, 0xf5
mov ecx, esi
shr ecx, 8
xor cl, 0xee
xor sil, 0xd8
xor ebp, 0xde4582d7
movabs rdx, 0x3e4de545c5634fae
xor r14, rdx
mov qword [rax], r14
mov dword [rax + 8], ebp
mov byte [rax + 0xc], sil
mov byte [rax + 0xd], cl
mov qword [rsp + 0x48], rax
mov byte [rax + 0xe], r8b
lea rcx, [rsp + 0x108]
mov rsi, qword [rsp + 0x58]
mov rdx, rsi
mov r8, rdi
call fcn.140012350
lea rcx, [rsp + 0x120]
mov rdx, rsi
mov r8, rdi
call fcn.140012350
mov r14, qword [rsp + 0x110]
mov r15, qword [rsp + 0x118]
movzx eax, byte [0x141dd7110]
xor ecx, ecx
mov rdx, rbx
call fcn.140040e10
test rax, rax
je 0x140013c04
mov r12, rax
mov rcx, rax
mov rdx, qword [rsp + 0x48]
mov r8, rbx
call fcn.14005c778
mov qword [rsp + 0x148], rbx
mov qword [rsp + 0x150], r12
mov qword [rsp + 0x158], rbx
mov byte [rsp + 0x160], 0
lea rcx, [rsp + 0x148]
mov rdx, r14
mov r8, r15
call fcn.140034480
mov r15, qword [rsp + 0x148]
mov rsi, qword [rsp + 0x150]
mov rbx, qword [rsp + 0x158]
cmp qword [rsp + 0x108], 0
je 0x1400134d3
mov rcx, qword [0x141dd70f0]
xor edx, edx
mov r8, r14
call fcn.14004e8b0
mov rcx, rsi
mov rdx, rbx
call fcn.1400352e0
test rax, rax
jne 0x140013c04
test rbx, rbx
js 0x140013c04
mov qword [rsp + 0x90], r15
mov r14, qword [rsp + 0x128]
mov r15, qword [rsp + 0x130]
je 0x140013528
movzx eax, byte [0x141dd7110]
xor ecx, ecx
mov rdx, rbx
call fcn.140040e10
mov r12, rax
test rax, rax
jne 0x14001352e
jmp 0x140013c04
mov r12d, 1
mov rcx, r12
mov rdx, rsi
mov r8, rbx
call fcn.14005c778
mov qword [rsp + 0x148], rbx
mov qword [rsp + 0x150], r12
mov qword [rsp + 0x158], rbx
mov byte [rsp + 0x160], 0
lea rcx, [rsp + 0x148]
mov rdx, r14
mov r8, r15
call fcn.140034480
mov rax, qword [rsp + 0x148]
mov qword [rsp + 0x88], rax
mov r15, qword [rsp + 0x150]
mov rbx, qword [rsp + 0x158]
cmp qword [rsp + 0x120], 0
je 0x1400135ab
mov rcx, qword [0x141dd70f0]
xor edx, edx
mov r8, r14
call fcn.14004e8b0
mov rcx, r15
mov rdx, rbx
call fcn.1400352e0
test rax, rax
jne 0x140013c04
test rbx, rbx
js 0x140013c04
je 0x1400135e8
movzx eax, byte [0x141dd7110]
xor ecx, ecx
mov rdx, rbx
call fcn.140040e10
mov r14, rax
test rax, rax
jne 0x1400135ee
jmp 0x140013c04
mov r14d, 1
mov rcx, r14
mov qword [rsp + 0x78], r15
mov rdx, r15
mov r8, rbx
call fcn.14005c778
mov qword [rsp + 0x148], rbx
mov qword [rsp + 0x150], r14
mov qword [rsp + 0x158], rbx
mov byte [rsp + 0x160], 0
lea rcx, [rsp + 0x148]
mov rdx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x40]
call fcn.140034480
mov r14, qword [rsp + 0x148]
mov r12, qword [rsp + 0x150]
mov r15, qword [rsp + 0x158]
mov dword [rsp + 0x148], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x150], xmm0
mov dword [rsp + 0x160], 7
mov qword [rsp + 0x164], 0
mov word [rsp + 0x16c], 0
mov byte [rsp + 0x169], 1
mov byte [rsp + 0x16c], 1
mov byte [rsp + 0x16b], 1
lea r8, [rsp + 0x148]
mov rcx, r12
mov rdx, r15
call fcn.140033990
test rax, rax
jne 0x140013c04
mov rbx, rdx
mov qword [rsp + 0x50], rdx
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx]
mov qword [rsp + 0x40], rax
neg rax
jo 0x140013c06
mov rdx, qword [rcx + 8]
mov r8, qword [rcx + 0x10]
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x30], rdx
call fcn.140001980
test rax, rax
jne 0x140013c04
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x70], rsi
lea rcx, [rsp + 0x148]
mov rdx, rbx
call fcn.140033c20
cmp dword [rsp + 0x148], 2
je 0x140013c04
mov rsi, qword [rsp + 0x180]
mov r14, qword [rsp + 0x50]
cmp rsi, 0x2a1fffff
mov qword [rsp + 0x80], r13
ja 0x1400137d2
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x148], 0
lea r8, [rsp + 0x148]
mov rcx, r14
xor edx, edx
mov r9d, 2
call fcn.14004e840
test eax, eax
je 0x140013c64
lea rbx, [rsp + 0x148]
mov r8d, 0x1000
mov rcx, rbx
xor edx, edx
call fcn.14005c6b8
mov r13d, 0x2a200000
sub r13, rsi
lea rbp, [rsp + 0x50]
nop word [rax + rax]
cmp r13, 0x1000
mov r12d, 0x1000
cmovb r12, r13
mov rcx, rbp
mov rdx, rbx
mov r8, r12
call fcn.140001980
test rax, rax
jne 0x140013c04
sub r13, r12
jne 0x1400137a0
mov r12, qword [rsp + 0x28]
mov rcx, r14
call fcn.14004ea08
test r15, r15
js 0x140013c04
je 0x14001382e
movzx eax, byte [0x141dd7110]
xor ecx, ecx
mov rdx, r15
call fcn.140040e10
test rax, rax
je 0x140013c04
mov r14, rax
mov rcx, rax
mov rdx, r12
mov r8, r15
call fcn.14005c778
movzx eax, byte [0x141dd7110]
xor ecx, ecx
mov rdx, r15
call fcn.140040e10
mov rbx, rax
test rax, rax
jne 0x140013849
jmp 0x140013c04
mov r14d, 1
mov ecx, 1
mov rdx, r12
mov r8, r15
call fcn.14005c778
mov ebx, 1
movabs rsi, 0x8000000000000000
mov rcx, rbx
mov rdx, r14
mov r8, r15
call fcn.14005c778
mov qword [rsp + 0x148], r15
mov qword [rsp + 0x150], rbx
mov qword [rsp + 0x158], r15
mov byte [rsp + 0x160], 0
mov qword [rsp + 0x168], 0
mov qword [rsp + 0x170], 8
mov qword [rsp + 0x178], 0
mov qword [rsp + 0x1d0], 0
mov qword [rsp + 0x1e0], 0
mov word [rsp + 0x1e8], 0
mov qword [rsp + 0x180], rsi
mov dword [rsp + 0x20c], 0
mov word [rsp + 0x208], 0
mov word [rsp + 0x210], 0
mov dword [rsp + 0x1a0], 6
mov dword [rsp + 0x1b0], 6
mov dword [rsp + 0x1c0], 6
mov qword [rsp + 0x1f0], 0
mov qword [rsp + 0x200], 0
test r15, r15
je 0x14001393d
mov rcx, qword [0x141dd70f0]
xor edx, edx
mov r8, r14
call fcn.14004e8b0
mov r13, r12
mov dword [rsp + 0x20c], 0x8000000
mov dword [rsp + 0x138], 0
lea rcx, [rsp + 0xc8]
lea rdx, [rsp + 0x148]
lea r8, [rsp + 0x138]
call fcn.140037200
mov rbp, qword [rsp + 0xc8]
mov r14, qword [rsp + 0xd8]
cmp r14, 2
jne 0x14001398e
mov rbx, rbp
jmp 0x1400139d2
mov r15, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xe0]
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0xe8], 0
sete sil
cmp qword [rsp + 0xf8], 0
sete r12b
lea rax, [0x141dc0f42]
mov qword [rsp + 0xc8], rax
lea rax, [rsp + 0xc8]
mov rcx, qword [rsp + 0xc8]
movabs rax, 0x4984d822b27e2b24
mov qword [rsp + 0xc8], rax
lea rax, [rsp + 0xc8]
mov rdx, qword [rsp + 0xc8]
call fcn.140007100
mov rcx, qword [rax]
mov rcx, qword [rax + 8]
mov rcx, qword [rax + 0x10]
mov rcx, qword [rax + 0x18]
movzx eax, word [rax + 0x20]
cmp r14d, 2
je 0x140013c04
mov rcx, rbp
call fcn.14004ea08
mov rcx, r15
call fcn.14004ea08
test r14, r14
je 0x140013a52
mov rcx, rbx
call fcn.14004ea08
test sil, 1
mov rbx, qword [rsp + 0xb0]
mov r14, qword [rsp + 0xa8]
mov r15, qword [rsp + 0xa0]
jne 0x140013a7a
mov rcx, qword [rsp + 0x68]
call fcn.14004ea08
test r12b, 1
jne 0x140013a8a
mov rcx, qword [rsp + 0x28]
call fcn.14004ea08
lea rcx, [rsp + 0x148]
call fcn.140004700
cmp qword [rsp + 0x40], 0
mov rsi, qword [rsp + 0xb8]
mov r12, qword [rsp + 0x90]
je 0x140013ac2
mov rcx, qword [0x141dd70f0]
xor edx, edx
mov r8, qword [rsp + 0x30]
call fcn.14004e8b0
cmp qword [rsp + 0x38], 0
je 0x140013adb
mov rcx, qword [0x141dd70f0]
xor edx, edx
mov r8, r13
call fcn.14004e8b0
cmp qword [rsp + 0x88], 0
je 0x140013af9
mov rcx, qword [0x141dd70f0]
xor edx, edx
mov r8, qword [rsp + 0x78]
call fcn.14004e8b0
test r12, r12
mov r12, qword [rsp + 0x80]
je 0x140013b19
mov rcx, qword [0x141dd70f0]
xor edx, edx
mov r8, qword [rsp + 0x70]
call fcn.14004e8b0
mov rcx, qword [0x141dd70f0]
xor edx, edx
mov r8, qword [rsp + 0x48]
call fcn.14004e8b0
mov r8, qword [rsp + 0x58]
dec qword [r8]
jne 0x140013b4a
dec qword [r8 + 8]
jne 0x140013b4a
mov rcx, qword [0x141dd70f0]
xor edx, edx
call fcn.14004e8b0
mov rcx, qword [0x141dd70f0]
xor edx, edx
mov r8, rdi
call fcn.14004e8b0
mov rcx, qword [0x141dd70f0]
xor edx, edx
mov r8, r12
call fcn.14004e8b0
mov rcx, qword [0x141dd70f0]
xor edx, edx
mov r8, rsi
call fcn.14004e8b0
mov rcx, qword [0x141dd70f0]
xor edx, edx
mov r8, rbx
call fcn.14004e8b0
mov rcx, qword [0x141dd70f0]
xor edx, edx
mov r8, r14
call fcn.14004e8b0
mov rcx, qword [0x141dd70f0]
xor edx, edx
mov r8, r15
call fcn.14004e8b0
mov rcx, qword [0x141dd70f0]
xor edx, edx
mov r8, qword [rsp + 0x60]
call fcn.14004e8b0
mov rcx, qword [0x141dd70f0]
xor edx, edx
mov r8, qword [rsp + 0x98]
call fcn.14004e8b0
mov rcx, qword [0x141dd70f0]
xor edx, edx
mov r8, qword [rsp + 0xc0]
call fcn.14004e8b0
nop
add rsp, 0x1148
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
lea rax, [0x141dc8fa6]
mov qword [rsp + 0x148], rax
lea rax, [rsp + 0x148]
mov rcx, qword [rsp + 0x148]
movabs rax, 0xb197d499f8556300
mov qword [rsp + 0x148], rax
lea rax, [rsp + 0x148]
mov rdx, qword [rsp + 0x148]
call fcn.140007c30
mov rcx, qword [rax]
mov rcx, qword [rax + 8]
mov rcx, qword [rax + 0x10]
mov rcx, qword [rax + 0x18]
mov ecx, dword [rax + 0x20]
movzx eax, word [rax + 0x24]
ud2
call fcn.14004e938
ud2