Function at 0x140099df8
Capabilities:
Encode data using base64

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xc0
mov r12, rcx
lea rcx, [rax + 0x10]
call fcn.1400591c8
lea rcx, [rsp + 0x68]
mov edx, 5
call fcn.14006170c
lea rcx, [rsp + 0x30]
mov edx, 0x14
call fcn.14006170c
mov rax, qword [rsp + 0x108]
xor esi, esi
lea rdi, str.DISPLAY
lea ecx, [rsi + 0x2d]
mov bl, sil
mov qword [rsp + 0x70], rdi
mov r14b, sil
mov byte [rsp + 0x39], sil
mov byte [rsp + 0x38], sil
mov byte [rsp + 0x118], bl
mov bpl, sil
lea edi, [rsi + 4]
lea r13d, [rsi + 1]
cmp cx, word [rax]
jne 0x14009a0bb
lea r15d, [rsi + 9]
lea rdx, [rsp + 0x108]
lea rcx, str._cap
mov r8d, edi
call fcn.1400640d4
cmp al, sil
je 0x140099eaf
mov r14b, r13b
mov byte [rsp + 0x39], r13b
jmp 0x14009a0a5
lea rdx, [rsp + 0x108]
lea rcx, str._max
mov r8d, edi
call fcn.1400640d4
cmp al, sil
je 0x140099ed5
mov byte [rsp + 0x38], r13b
jmp 0x14009a0a5
lea rdx, [rsp + 0x108]
lea rcx, str._win
mov r8d, edi
call fcn.1400640d4
cmp al, sil
je 0x140099ef6
mov bl, r13b
jmp 0x140099f17
lea rdx, [rsp + 0x108]
lea rcx, str._taskbar
mov r8d, 8
call fcn.1400640d4
cmp al, sil
je 0x140099f23
mov bl, 2
mov byte [rsp + 0x118], bl
jmp 0x14009a0a5
lea rdx, [rsp + 0x108]
lea rcx, str._desk_
mov r8d, 5
call fcn.1400640d4
cmp al, sil
je 0x140099f4a
mov bpl, r13b
jmp 0x14009a0a5
lea rdx, [rsp + 0x108]
lea rcx, str._desk_
mov r8d, 6
call fcn.1400640d4
cmp al, sil
je 0x140099f71
mov bpl, 0xff
jmp 0x14009a0a5
lea rdx, [rsp + 0x108]
lea rcx, str._save
mov r8d, 5
call fcn.1400640d4
cmp al, sil
jne 0x14009a0a5
mov r11, qword [rsp + 0x108]
lea rcx, str._display:
mov r8d, r15d
mov rdx, r11
call fcn.14005a82c
cmp al, sil
je 0x14009a01b
add r11, 0x12
mov qword [rsp + 0x108], r11
mov qword [rsp + 0x70], r11
movzx eax, word [r11]
cmp ax, si
je 0x14009a098
mov ecx, 0x20
cmp r15w, ax
ja 0x140099fe2
cmp ax, 0xd
jbe 0x14009a002
cmp cx, ax
je 0x14009a002
add r11, 2
mov qword [rsp + 0x108], r11
mov ax, word [r11]
cmp ax, si
je 0x14009a098
jmp 0x140099fd6
cmp word [r11], si
je 0x14009a098
mov word [r11], si
add qword [rsp + 0x108], 2
jmp 0x14009a098
lea rdx, [rsp + 0x108]
lea rcx, [0x14011aed0]
mov r8d, edi
call fcn.1400640d4
cmp al, sil
jne 0x14009a278
lea rdx, [rsp + 0x108]
lea rcx, str._capgui
mov r8d, 7
call fcn.1400640d4
cmp al, sil
jne 0x14009a278
mov rcx, qword [rsp + 0x108]
movzx eax, word [rcx]
cmp ax, si
je 0x14009a098
mov edx, 0x20
cmp r15w, ax
ja 0x14009a07f
cmp ax, 0xd
jbe 0x14009a098
cmp dx, ax
je 0x14009a098
add rcx, 2
mov qword [rsp + 0x108], rcx
mov ax, word [rcx]
cmp ax, si
jne 0x14009a073
lea rcx, [rsp + 0x108]
call fcn.1400591c8
mov rax, qword [rsp + 0x108]
mov ecx, 0x2d
cmp cx, word [rax]
je 0x140099e86
mov eax, 8
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x108]
lea r9d, [rax + 0x24]
mov rcx, r12
mov word [rsp + 0x20], ax
call fcn.1400527c8
xor ecx, ecx
mov r15d, esi
mov dword [rsp + 0x40], esi
mov dword [rsp + 0x48], esi
mov dword [rsp + 0x60], esi
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, r13d
mov edi, eax
mov dword [rsp + 0x3c], eax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov r13, qword [rsp + 0x108]
xor r9d, r9d
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x108]
lea r8d, [r9 + 0x2c]
mov esi, eax
mov dword [rsp + 0x78], eax
call fcn.140052a10
movzx eax, byte [rsp + 0x38]
xor edx, edx
cmp bl, dl
cmovne eax, edx
cmp bpl, dl
mov dword [rsp + 0x80], eax
jg 0x14009a2c6
mov rax, qword [rsp + 0x108]
cmp word [rax], dx
jne 0x14009a2c6
lea eax, [rdx + 1]
cmp bl, al
je 0x14009a2c6
cmp r14b, dl
jne 0x14009a2c6
mov r14d, dword [rsp + 0x108]
cmp byte [rsp + 0x80], dl
je 0x14009a199
mov ecx, 0x3d
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, 0x3e
mov edi, eax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
xor edx, edx
mov esi, eax
mov qword [rsp + 0x90], rdx
xor edx, edx
lea rcx, [rsp + 0x98]
lea r8d, [rdx + 0x20]
mov dword [rsp + 0x88], 0x30
call fcn.1400fae60
movsxd r8, dword [rsp + 0x3c]
movsxd rcx, dword [rsp + 0x58]
mov eax, r8d
movsxd r9, r14d
cdq
sub eax, edx
sar eax, 1
movsxd r10, eax
mov rax, rcx
imul rax, rax, 0x64
add rax, r10
cqo
idiv r8
movsxd r8, dword [rsp + 0x78]
mov r13, rax
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov rax, r9
mov qword [rsp + 0x70], rdx
imul rax, rax, 0x64
add rax, rdx
cqo
idiv r8
mov rbx, rax
cmp ecx, dword [rsp + 0x3c]
jne 0x14009a4f4
cmp r14d, r8d
jne 0x14009a4f4
movsxd rcx, dword [rsp + 0x48]
movabs r8, 0x2aaaaaaaaaaaaaab
mov rax, r8
imul rcx, rcx, 0x64
add rcx, 0x30
imul rcx
movsxd rcx, dword [rsp + 0x60]
mov rax, r8
sar rdx, 4
mov r13, rdx
imul rcx, rcx, 0x64
shr r13, 0x3f
add rcx, 0x30
add r13, rdx
imul rcx
mov ecx, dword [rsp + 0x58]
sar rdx, 4
mov rbx, rdx
shr rbx, 0x3f
add rbx, rdx
jmp 0x14009a525
lea rdx, str.31:INDATA
lea rcx, [rsp + 0x118]
call fcn.14006d5dc
mov rdx, qword [rsp + 0x108]
lea rcx, [rsp + 0x118]
call fcn.1400617d4
mov rdx, qword [rsp + 0x118]
mov rcx, r12
call fcn.140030c38
lea rcx, [rsp + 0x118]
mov rbx, rax
call fcn.1400591f8
jmp 0x14009a93f
mov rcx, qword [rsp + 0x70]
xor r9d, r9d
xor r8d, r8d
call qword [sym.imp.GDI32.dll_CreateDCW]
mov edx, 0x76
mov rcx, rax
mov rbx, rax
call qword [sym.imp.GDI32.dll_GetDeviceCaps]
mov edx, 0x75
mov rcx, rbx
mov dword [rsp + 0x58], eax
call qword [sym.imp.GDI32.dll_GetDeviceCaps]
mov edx, 0x58
mov rcx, rbx
mov r14d, eax
call qword [sym.imp.GDI32.dll_GetDeviceCaps]
mov edx, 0x5a
mov rcx, rbx
mov dword [rsp + 0x48], eax
call qword [sym.imp.GDI32.dll_GetDeviceCaps]
xor edx, edx
mov dword [rsp + 0x60], eax
cmp rbx, rdx
je 0x14009a333
mov rcx, rbx
call qword [sym.imp.GDI32.dll_DeleteDC]
xor edx, edx
cmp byte [rsp + 0x39], dl
je 0x14009a174
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x108], r13
mov r15, rdx
movzx eax, word [rcx]
mov dword [rsp + 0x54], r14d
mov dword [rsp + 0x48], edx
neg ax
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x4c], edx
sbb rbp, rbp
xor r14d, r14d
mov dword [rsp + 0x50], eax
lea eax, [r14 + 0x23]
and rbp, rcx
mov rdi, r14
mov qword [rsp + 0x118], r14
mov rbx, r14
mov qword [rsp + 0x60], r14
mov rsi, r14
mov r12d, r14d
cmp ax, word [r13]
jne 0x14009a3a5
lea rax, [r13 + 2]
lea r12d, [r14 + 1]
mov qword [rsp + 0x108], rax
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x108]
call fcn.1400ae36c
mov r13d, 1
cmp eax, r14d
je 0x14009a3ce
mov rsi, qword [rsp + 0x60]
mov rbx, r13
mov dword [rsp + 0x48], esi
lea rdx, [rsp + 0x118]
lea rcx, [rsp + 0x108]
call fcn.1400ae36c
cmp eax, r14d
je 0x14009a3f7
mov eax, dword [rsp + 0x118]
or rbx, 2
mov dword [rsp + 0x4c], eax
lea rdx, [rsp + 0x118]
lea rcx, [rsp + 0x108]
call fcn.1400ae36c
cmp eax, r14d
je 0x14009a420
mov eax, dword [rsp + 0x118]
or rbx, 4
mov dword [rsp + 0x50], eax
lea rdx, [rsp + 0x118]
lea rcx, [rsp + 0x108]
call fcn.1400ae36c
cmp eax, r14d
je 0x14009a449
mov eax, dword [rsp + 0x118]
or rbx, 8
mov dword [rsp + 0x54], eax
xor edx, edx
lea rcx, [rsp + 0x108]
lea r8d, [rdx + 0x1d]
call fcn.1400249a8
mov r11, qword [rsp + 0x108]
cmp word [r11], r14w
je 0x14009a47f
mov al, bl
mov r15, r11
and al, 0xc
cmp al, 0xc
je 0x14009a47f
mov dword [rsp + 0x54], r14d
mov dword [rsp + 0x50], r14d
cmp r12d, r14d
je 0x14009a4c6
lea rdx, [rsp + 0x48]
mov rcx, rsi
lea rdi, [rsp + 0x48]
call qword [sym.imp.USER32.dll_GetWindowRect]
cmp eax, r14d
jne 0x14009a4d9
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [rsp + 0x30]
mov ebx, eax
cmp eax, r14d
cmove ebx, r13d
call fcn.1400591f8
lea rcx, [rsp + 0x68]
call fcn.1400591f8
mov eax, ebx
jmp 0x14009a956
cmp rbx, r13
jge 0x14009a4d4
cmp qword [0x140135828], r14
jg 0x14009a4d9
lea rdi, [rsp + 0x48]
mov r9, qword [rsp + 0x70]
mov r8, r15
mov rdx, rbp
mov rcx, rdi
call fcn.14007a6bc
movsxd rbx, eax
jmp 0x14009a93f
lea rax, [rcx + rcx*2]
shl rax, 5
add rax, r10
movsxd r10, dword [rsp + 0x3c]
cqo
idiv r10
mov qword [rsp + 0x48], rax
lea rax, [r9 + r9*2]
shl rax, 5
add rax, qword [rsp + 0x70]
cqo
idiv r8
mov qword [rsp + 0x60], rax
test bpl, bpl
jle 0x14009a52f
mov edi, ecx
mov esi, r14d
mov r14b, byte [rsp + 0x118]
test r14b, r14b
je 0x14009a76e
lea rdx, [rsp + 0x88]
mov ecx, 5
call qword [sym.imp.SHELL32.dll_SHAppBarMessage]
cmp r14b, 2
jne 0x14009a582
mov esi, dword [rsp + 0xac]
mov r14d, dword [rsp + 0xa4]
mov edi, dword [rsp + 0xa8]
mov r15d, dword [rsp + 0xa0]
sub esi, r14d
sub edi, r15d
jmp 0x14009a773
mov eax, dword [rsp + 0x9c]
cmp eax, 3
jne 0x14009a5c7
movsxd rsi, dword [rsp + 0xa4]
mov r14, qword [rsp + 0x40]
test bpl, bpl
jg 0x14009a773
mov eax, ebx
mov r8, rsi
movsxd rcx, ebx
cdq
sub eax, edx
imul r8, r8, 0x64
sar eax, 1
cdqe
add rax, r8
cqo
idiv rcx
mov rsi, rax
jmp 0x14009a773
cmp eax, 1
jne 0x14009a62d
movsxd r9, dword [rsp + 0xac]
mov r14d, r9d
test bpl, bpl
jg 0x14009a5fb
mov eax, r13d
mov r8, r9
movsxd rcx, r13d
cdq
sub eax, edx
imul r8, r8, 0x64
sar eax, 1
cdqe
add rax, r8
cqo
idiv rcx
mov r14, rax
sub esi, r9d
test bpl, bpl
jg 0x14009a773
mov esi, dword [rsp + 0x78]
mov eax, ebx
mov r8, r9
cdq
movsxd rcx, ebx
imul r8, r8, 0x64
sub eax, edx
sar eax, 1
cdqe
add rax, r8
cqo
idiv rcx
sub esi, eax
jmp 0x14009a773
test eax, eax
jne 0x14009a697
movsxd r9, dword [rsp + 0xa8]
mov r15d, r9d
test bpl, bpl
jg 0x14009a660
mov eax, r13d
mov r8, r9
movsxd rcx, r13d
cdq
sub eax, edx
imul r8, r8, 0x64
sar eax, 1
cdqe
add rax, r8
cqo
idiv rcx
mov r15, rax
mov r14, qword [rsp + 0x40]
sub edi, r9d
test bpl, bpl
jg 0x14009a773
mov edi, dword [rsp + 0x3c]
mov eax, ebx
mov r8, r9
cdq
movsxd rcx, ebx
imul r8, r8, 0x64
sub eax, edx
sar eax, 1
cdqe
add rax, r8
cqo
idiv rcx
sub edi, eax
jmp 0x14009a773
cmp eax, 2
jne 0x14009a6d6
movsxd rdi, dword [rsp + 0xa0]
mov r14, qword [rsp + 0x40]
test bpl, bpl
jg 0x14009a773
mov eax, r13d
mov r8, rdi
movsxd rcx, r13d
cdq
sub eax, edx
imul r8, r8, 0x64
sar eax, 1
cdqe
add rax, r8
cqo
idiv rcx
mov rdi, rax
jmp 0x14009a773
mov ecx, 0x3d
call qword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, 0x3e
movsxd r14, eax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
movsxd r11, eax
test bpl, bpl
jle 0x14009a760
mov r8, r14
mov eax, r13d
movsxd rcx, r13d
cdq
movabs r9, 0xa3d70a3d70a3d70b
sub eax, edx
imul r8, rcx
sar eax, 1
movsxd rcx, eax
mov rax, r9
add r8, rcx
imul r8
mov eax, ebx
lea r14, [r8 + rdx]
cdq
mov r8, r11
sub eax, edx
sar r14, 6
sar eax, 1
mov rcx, r14
shr rcx, 0x3f
add r14, rcx
movsxd rcx, ebx
imul r8, rcx
movsxd rcx, eax
mov rax, r9
add r8, rcx
imul r8
lea r11, [r8 + rdx]
sar r11, 6
mov rax, r11
shr rax, 0x3f
add r11, rax
cmp edi, r14d
cmovg edi, r14d
cmp esi, r11d
cmovg esi, r11d
mov r14, qword [rsp + 0x40]
mov r8, qword [rsp + 0x68]
xor ebp, ebp
cmp word [r8], bp
je 0x14009a78a
mov edx, edi
mov rcx, r12
call fcn.140064994
mov rax, qword [rsp + 0x30]
cmp word [rax], bp
je 0x14009a7a6
mov r8, rax
mov edx, esi
mov rcx, r12
call fcn.140064994
mov rax, qword [rsp + 0x30]
xor r9d, r9d
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x108]
lea edi, [r9 + 0x2c]
mov word [rax], bp
mov r8d, edi
call fcn.140052a10
mov r11, qword [rsp + 0x30]
cmp word [r11], bp
je 0x14009a7e3
mov r8, r11
mov edx, r15d
mov rcx, r12
call fcn.140064994
mov r11, qword [rsp + 0x30]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x108]
xor r9d, r9d
mov r8d, edi
mov word [r11], bp
call fcn.140052a10
mov r11, qword [rsp + 0x30]
cmp word [r11], bp
je 0x14009a81d
mov r8, r11
mov edx, r14d
mov rcx, r12
call fcn.140064994
mov r11, qword [rsp + 0x30]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x108]
xor r9d, r9d
mov r8d, edi
mov word [r11], bp
call fcn.140052a10
mov r11, qword [rsp + 0x30]
cmp word [r11], bp
je 0x14009a85b
mov edx, dword [rsp + 0x9c]
mov r8, r11
mov rcx, r12
call fcn.140064994
mov r11, qword [rsp + 0x30]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x108]
xor r9d, r9d
mov r8d, edi
mov word [r11], bp
call fcn.140052a10
mov r11, qword [rsp + 0x30]
cmp word [r11], bp
je 0x14009a896
mov edx, dword [rsp + 0x48]
mov r8, r11
mov rcx, r12
call fcn.140064994
mov r11, qword [rsp + 0x30]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x108]
xor r9d, r9d
mov r8d, edi
mov word [r11], bp
call fcn.140052a10
mov r11, qword [rsp + 0x30]
cmp word [r11], bp
je 0x14009a8d1
mov edx, dword [rsp + 0x60]
mov r8, r11
mov rcx, r12
call fcn.140064994
mov r11, qword [rsp + 0x30]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x108]
xor r9d, r9d
mov r8d, edi
mov word [r11], bp
call fcn.140052a10
mov r11, qword [rsp + 0x30]
cmp word [r11], bp
je 0x14009a90b
mov r8, r11
mov edx, r13d
mov rcx, r12
call fcn.140064994
mov r11, qword [rsp + 0x30]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x108]
xor r9d, r9d
mov r8d, edi
mov word [r11], bp
call fcn.140052a10
mov r8, qword [rsp + 0x30]
cmp word [r8], bp
je 0x14009a93c
mov edx, ebx
mov rcx, r12
call fcn.140064994
mov rbx, rbp
lea rcx, [rsp + 0x30]
call fcn.1400591f8
lea rcx, [rsp + 0x68]
call fcn.1400591f8
mov rax, rbx
mov rbx, qword [rsp + 0x100]
add rsp, 0xc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret