Function at 0x180063530
Capabilities:
Manipulate console buffer

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x480]
sub rsp, 0x580
mov rax, qword [0x18007cd08]
xor rax, rsp
mov qword [rbp + 0x470], rax
mov r10, rcx
mov qword [rsp + 0x78], rcx
xor ecx, ecx
mov qword [rsp + 0x40], r9
lea esi, [rdx - 0xb]
mov qword [rsp + 0x68], r8
mov dword [rsp + 0x48], edx
mov r15, r9
mov r9, r8
mov r8d, edx
mov r11d, edx
cmp edx, esi
jbe 0x1800639b6
movzx eax, word [rsp + 0x30]
lea r12d, [rcx + 0x75]
mov rdi, qword [rsp + 0x40]
lea r13d, [rcx + 0x72]
mov rbx, qword [rsp + 0x40]
lea r8d, [rcx + 0x74]
mov rdx, qword [rsp + 0x40]
lea r14d, [rcx + 0x57]
mov dword [rsp + 0x38], eax
lea eax, [r11 - 0x1b]
cmp eax, 0x27
ja case.default.0x1800635e0
lea rcx, [0x180000000]
movzx eax, byte [rcx + rax + 0x641a4]
mov ecx, dword [rcx + rax*4 + 0x64174]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
mov rdi, qword [rsp + 0x40]
mov rdx, qword [r10]
xor ecx, ecx
dec r11d
cmp r11d, esi
ja 0x1800635b7
mov edx, dword [rsp + 0x38]
mov r8d, dword [rsp + 0x48]
movzx esi, byte [rsp + 0x30]
mov r12d, r8d
mov rbx, qword [rsp + 0x40]
mov r14, qword [rsp + 0x40]
mov dword [rsp + 0x3c], r8d
mov eax, dword [rsp + 0x3c]
mov r15d, dword [rsp + 0x3c]
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x40]
mov qword [rbp - 0x78], rax
movzx eax, byte [rsp + 0x30]
mov byte [rsp + 0x34], al
mov rax, qword [rsp + 0x40]
mov qword [rbp - 0x80], rax
mov rax, qword [rsp + 0x40]
mov qword [rbp - 0x70], rax
movzx eax, byte [rsp + 0x30]
mov byte [rsp + 0x30], al
mov rax, qword [rsp + 0x40]
movzx r13d, byte [rsp + 0x30]
movzx edi, byte [rsp + 0x30]
mov qword [rsp + 0x70], rax
mov eax, dword [rsp + 0x3c]
mov dword [rsp + 0x60], eax
mov eax, dword [rsp + 0x3c]
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x58], esi
mov qword [rbp - 0x68], rbx
imul eax, r8d, 0x864
cmp r12d, eax
ja 0x180064145
cmp r12d, 0x4bba
ja 0x180063ac4
je 0x180063aaa
cmp r12d, 0x25f8
ja 0x180063a77
je 0x180063a1c
cmp r12d, 0x1e
je 0x1800639c4
cmp r12d, 0x36
je 0x180063914
cmp r12d, 0x1518
jne 0x180063a02
mov eax, dword [0x180076172]
mov dword [rbp + 0x250], eax
movzx eax, word [0x180076176]
mov word [rbp + 0x254], ax
mov dword [rbp + 0x24c], 0x5f0032
mov dword [rbp + 0x256], 0x6c0064
jmp 0x180063a02
mov rax, qword [rdx + 0x10]
xor ecx, ecx
cmp qword [r9], rax
jb case.default.0x1800635e0
mov qword [r9], rcx
mov rdx, qword [rdx + 0x28]
jmp case.default.0x1800635e0
mov rdi, qword [rdx]
jmp case.0x1800635e0.31
mov word [rbp + 0x208], r12w
jmp case.0x1800635e0.31
xor ecx, ecx
test r15, r15
je 0x18006373f
mov dword [r15], ecx
movzx r8d, word [r10 + 0x42]
mov r14d, ecx
mov dword [rsp + 0x38], ecx
cmp cx, r8w
jae 0x18006387d
mov rax, qword [rsp + 0x68]
mov r9, qword [r10 + 0x10]
mov r10d, dword [rax]
movzx eax, r14w
movzx ecx, word [r9 + rax*2]
cmp r10d, ecx
jbe 0x18006388c
inc r14w
mov dword [rsp + 0x38], r14d
cmp r14w, r8w
jb 0x180063761
mov r10, qword [rsp + 0x78]
mov r8d, 0x74
mov r9, qword [rsp + 0x68]
lea r14d, [r8 - 0x1d]
jmp case.0x1800635e0.31
mov word [rbp + 0x206], r13w
mov word [rbp + 0x207], r8w
jmp case.0x1800635e0.31
mov eax, 0x53
mov word [rbp + 0x200], r14w
mov word [rbp + 0x201], ax
mov eax, 0x41
mov word [rbp + 0x202], ax
jmp case.0x1800635e0.31
xor r11d, r11d
mov r8d, r11d
mov ebx, r11d
test rdx, rdx
je 0x18006385c
mov rcx, qword [r9]
nop word [rax + rax]
movzx eax, byte [rcx + rdi]
mov qword [rsp + 0x70], rcx
lea rcx, [0x180000000]
cmp byte [rax + rcx + 0x70c70], 0xff
mov rcx, qword [rsp + 0x70]
je 0x18006385c
cmp r8d, 6
jae 0x18006385c
mov qword [rsp + 0x70], rcx
inc r8d
shl rbx, 4
lea rcx, [0x180000000]
movzx eax, byte [rax + rcx + 0x70d70]
mov rcx, qword [rsp + 0x70]
or rbx, rax
inc rcx
mov qword [r9], rcx
cmp rcx, qword [rdx + 0x10]
jb 0x180063857
cmp qword [rdx + 0x28], r11
je 0x18006385c
mov qword [r9], r11
mov rcx, r11
mov rdi, qword [rdx]
mov rdx, qword [rdx + 0x28]
test rdx, rdx
jne 0x1800637f0
mov r11d, 0x3f
mov qword [r10], rdx
lea r8d, [r11 + 0x35]
jmp case.0x1800635e0.31
mov dword [rbp + 0x203], 0x617453
jmp case.0x1800635e0.31
mov r8d, 0x74
lea r14d, [r8 - 0x1d]
jmp case.default.0x1800635e0
mov rdx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x40]
movzx r9d, byte [rsp + 0x30]
movzx esi, byte [rsp + 0x30]
mov ecx, dword [rsp + 0x3c]
mov r10d, dword [rsp + 0x3c]
mov rax, qword [rsp + 0x40]
mov r15d, dword [rsp + 0x3c]
mov r14, qword [rsp + 0x40]
mov qword [rbp - 0x80], rdx
movzx edx, byte [rsp + 0x30]
mov byte [rsp + 0x30], dl
mov rdx, qword [rsp + 0x40]
movzx r13d, byte [rsp + 0x30]
movzx edi, byte [rsp + 0x30]
mov qword [rbp - 0x78], r8
mov r8, qword [rsp + 0x40]
mov dword [rsp + 0x60], ecx
mov ecx, dword [rsp + 0x3c]
mov qword [rsp + 0x70], rdx
mov edx, dword [rsp + 0x38]
mov dword [rsp + 0x64], r10d
mov r10, qword [rsp + 0x78]
mov qword [rbp - 0x70], r8
mov r8d, dword [rsp + 0x48]
mov byte [rsp + 0x34], r9b
mov dword [rsp + 0x58], esi
mov dword [rsp + 0x5c], ecx
mov qword [rbp - 0x68], rax
mov r12d, 0x36
cmp dx, word [r10 + 0x42]
jae 0x18006393a
mov rax, qword [r10 + 0x20]
mov r9, qword [rsp + 0x68]
movzx ecx, dx
movzx ecx, word [rax + rcx*2]
cmp dword [r9], ecx
jae 0x180063a02
mov r15, qword [rsp + 0x40]
test r15, r15
je 0x18006394b
mov dword [r15], 0x70100
xor eax, eax
mov word [rsp + 0x50], ax
jmp 0x180064145
mov rax, rbx
jmp 0x18006414a
cmp dword [r10 + 0xc], 0
je 0x1800639a9
cmp dword [r10 + 0x34], 0
je 0x1800639a9
cmp dword [r10 + 0x10], 0
je 0x1800639a9
cmp dword [r10 + 0x14], 0
je 0x1800639a9
cmp dword [r10 + 0x18], 0
je 0x1800639a9
cmp dword [r10 + 0x38], 0
je 0x1800639a9
cmp dword [r10 + 0x1c], 0
je 0x1800639a9
cmp dword [r10 + 0x20], 0
je 0x1800639a9
cmp dword [r10 + 0x28], 0
je 0x1800639a9
xor eax, eax
mov dword [rsp + 0x50], eax
jmp 0x180064145
mov dword [rsp + 0x50], 0x70004
jmp 0x180064145
movzx edx, word [rsp + 0x30]
mov dword [rsp + 0x38], edx
jmp 0x1800635fd
mov eax, 0x70
mov word [rbp + 0x248], cx
lea rdx, [0x18007622e]
mov word [rbp + 0x209], ax
lea rcx, [rbp + 0x248]
lea r8d, [rax - 0x6e]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncat]
mov r10, qword [rsp + 0x78]
mov r9, qword [rsp + 0x68]
mov edx, dword [rsp + 0x38]
mov r8d, dword [rsp + 0x48]
mov rbx, qword [rbp - 0x68]
imul eax, r8d, 0xb3
add r12d, eax
mov dword [rsp + 0x3c], r12d
xor ecx, ecx
jmp 0x18006367b
mov rax, qword [r10 + 0x30]
movzx r8d, dx
movzx ecx, word [rax + r8*2]
test cx, cx
je 0x18006411d
mov rax, qword [r10 + 0x20]
shr cx, 1
sub cx, word [rax + r8*2]
sub cx, word [r10 + 0x42]
add cx, word [r9]
add cx, dx
cmp cx, word [r10 + 0x40]
jae 0x1800639fd
mov rax, qword [r10 + 0x38]
movzx ecx, cx
movzx edx, word [rax + rcx*2]
test dx, dx
je 0x1800639f9
mov rax, qword [r10 + 0x28]
movzx ecx, word [rax + r8*2]
add cx, dx
mov word [rsp + 0x50], cx
jmp 0x180064145
cmp r12d, 0x2a12
je 0x180063a99
cmp r12d, 0x3f0c
jne 0x180063a02
mov word [rbp + 0x25c], cx
jmp 0x180063a02
mov eax, 0x6c
mov word [rbp + 0x25a], ax
jmp 0x180063a02
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x180063aba
mov dword [rax], 0x70100
mov word [rsp + 0x50], cx
jmp 0x180063a02
cmp r12d, 0x5406
je 0x18006410e
cmp r12d, 0x6900
je 0x180063deb
cmp r12d, 0x717c
je 0x180064145
cmp r12d, 0x7dfa
je 0x180063b1c
cmp r12d, 0x92f4
jne 0x180063a02
xor r9d, r9d
xor r8d, r8d
mov edx, 0xa1
xor ecx, ecx
call fcn.180044bb0
mov byte [rsp + 0x50], al
jmp 0x180064145
xor r9d, r9d
mov r8d, 0xc0
mov rdx, r10
xor ecx, ecx
call fcn.1800456e0
test al, al
jne 0x180063da4
mov esi, 0xf5
nop dword [rax]
cmp esi, 0xf5
je 0x180063d7f
cmp esi, 0xa2b2
je 0x180063b89
cmp esi, 0x1446f
je 0x180063b6d
cmp esi, 0x1e62c
je 0x180064145
jmp 0x180063d8e
mov r8d, dword [rsp + 0x60]
mov rcx, rbx
mov edx, dword [rsp + 0x5c]
call qword [sym.imp.GDI32.dll_PtInRegion]
mov byte [rsp + 0x50], 0
jmp 0x180063d8e
xor eax, eax
lea r9, [rbp - 0x60]
xor r8d, r8d
mov dword [rsp + 0x5c], eax
xor edx, edx
xor ecx, ecx
call sub.RPCRT4.dll_MesEncodeIncrementalHandleCreate
test eax, eax
movzx r13d, r13b
mov eax, 0
mov dword [rsp + 0x60], 0xa
cmovne r13d, eax
test r13b, r13b
je 0x180063d8e
mov ebx, 0x46
lea r12d, [rax + 0x6f]
nop dword [rax + rax]
cmp ebx, 0x332
ja 0x180063d05
je 0x180063cdd
cmp ebx, 0x46
je 0x180063cbb
cmp ebx, 0x101
je 0x180063c44
cmp ebx, 0x1bc
je 0x180063c35
cmp ebx, 0x277
jne 0x180063d62
mov r8d, 2
lea rdx, [0x180074188]
lea rcx, [rbp + 0x224]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
xor eax, eax
mov dword [rbp + 0x225], 0x657a69
mov dil, 1
jmp 0x180063d62
mov dword [rbp + 0x221], 0x616974
jmp 0x180063d62
mov r8d, 1
mov word [rbp + 0x212], r12w
lea rdx, [0x180074188]
lea rcx, [rbp + 0x210]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncat]
mov eax, dword [str.orStat]
lea rdx, [0x180076298]
mov dword [rbp + 0x214], eax
lea rcx, [rbp + 0x210]
movzx eax, word [0x18007628c]
mov r8d, 2
mov word [rbp + 0x218], ax
mov eax, dword [str.e.ReI]
mov dword [rbp + 0x21a], eax
movzx eax, word [0x180076294]
mov word [rbp + 0x21e], ax
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncat]
xor eax, eax
jmp 0x180063d62
movzx eax, word [0x180070a40]
mov word [rbp + 0x210], ax
movzx eax, byte [0x180070a42]
mov byte [rbp + 0x212], al
xor eax, eax
jmp 0x180063d62
mov rcx, qword [rbp - 0x60]
xor r9d, r9d
mov dword [rsp + 0x28], eax
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], rax
mov r14, 0xffffffffffffffff
mov r15d, eax
call sub.RPCRT4.dll_MesIncrementalHandleReset
xor eax, eax
jmp 0x180063d62
cmp ebx, 0x3ed
je 0x180063d41
cmp ebx, 0x4a8
je 0x180063d2f
cmp ebx, 0x563
jne 0x180063d62
mov rcx, qword [rbp - 0x60]
test rcx, rcx
je 0x180063d62
call sub.RPCRT4.dll_MesHandleFree
xor eax, eax
jmp 0x180063d62
test dil, dil
je 0x180063d62
mov rcx, r14
call qword [sym.imp.dbghelp.dll_SymCleanup]
xor eax, eax
jmp 0x180063d62
mov r8d, r15d
lea rdx, [rbp + 0x210]
mov rcx, r14
call qword [sym.imp.dbghelp.dll_SymInitialize]
test eax, eax
movzx edi, dil
mov eax, 0
cmove edi, eax
add ebx, 0xbb
cmp ebx, 0x61e
jb 0x180063bd0
mov r12d, dword [rsp + 0x3c]
mov rbx, qword [rbp - 0x68]
jmp 0x180063d8e
xor eax, eax
mov r13b, 1
mov ebx, eax
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x60], rax
add esi, 0xa1bd
cmp esi, 0x286f4
jbe 0x180063b40
mov esi, dword [rsp + 0x58]
cmp byte [rsp + 0x30], 0
je 0x180063dca
mov rcx, qword [rbp - 0x78]
xor edx, edx
mov r8d, 0x80
call qword [sym.imp.KERNEL32.dll_LocalReAlloc]
mov rcx, rax
mov qword [rbp - 0x78], rax
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov edx, dword [rsp + 0x64]
lea r8, [rbp + 0x260]
mov rcx, qword [rsp + 0x70]
mov r9d, 0x104
call qword [sym.imp.SHELL32.dll_DragQueryFileW]
jmp 0x1800639ef
mov r8d, 0x8b
mov dword [rsp + 0x64], 0xffffffff
lea rdx, [rbp + 0x200]
lea rcx, [rbp + 0x248]
call fcn.1800417d0
mov edx, 0x104
mov ecx, 0x40
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov ecx, 0x202
lea rdx, [rbp + 0x50]
mov qword [rbp - 0x78], rax
call rbx
test eax, eax
je 0x1800640e6
xor edx, edx
mov ebx, edx
nop word [rax + rax]
cmp ebx, 0xe
ja case.default.0x180063e5d
lea r8, [0x180000000]
mov eax, ebx
mov ecx, dword [r8 + rax*4 + 0x641cc]
add rcx, r8
jmp rcx
mov r8d, 1
mov byte [rbp + 0x1fb], 0
lea rdx, [0x180076052]
lea rcx, [rbp + 0x1fb]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
xor edx, edx
mov word [rbp + 0x1fc], 0x49
jmp case.default.0x180063e5d
mov byte [rsp + 0x34], 1
jmp case.default.0x180063e5d
mov r8d, 1
mov byte [rbp + 0x23c], 0
lea rdx, [0x18007606a]
lea rcx, [rbp + 0x23c]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
mov r8d, 4
mov byte [rbp + 0x23d], 0
lea rdx, [0x180076081]
lea rcx, [rbp + 0x23d]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
xor edx, edx
mov byte [rbp + 0x241], 0
jmp case.default.0x180063e5d
mov byte [rbp + 0x1fd], 0x6e
jmp case.default.0x180063e5d
movzx eax, byte [rsp + 0x34]
lea r9, [rbp - 0x50]
cmp qword [rbp - 0x80], 0xffffffffffffffff
mov ecx, edx
lea rdx, [rbp + 0x1f0]
cmovne ecx, eax
xor r8d, r8d
mov byte [rsp + 0x34], cl
lea rcx, [rbp + 0x230]
call qword [sym.imp.GDI32.dll_CreateICA]
cmp byte [rsp + 0x34], 0
mov qword [rbp - 0x70], rax
je 0x180063f58
mov rcx, qword [rbp - 0x80]
lea rdx, [rbp + 0x210]
call qword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x180063f54
mov edx, dword [rbp + 0x214]
mov rcx, qword [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov rax, qword [rbp - 0x70]
test rax, rax
movzx esi, sil
mov edx, 0
cmove esi, edx
mov dword [rsp + 0x58], esi
jmp case.default.0x180063e5d
mov sil, 1
mov word [rbp + 0x1fe], 0x6b
mov dword [rsp + 0x58], esi
jmp case.default.0x180063e5d
mov eax, 0x6c61
mov byte [rbp + 0x238], 0
mov r8d, 4
mov word [rbp + 0x236], ax
lea rdx, [0x180076098]
lea rcx, [rbp + 0x238]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
xor edx, edx
jmp case.default.0x180063e5d
movzx eax, word [0x1800760b0]
mov word [rbp + 0x233], ax
movzx eax, byte [0x1800760b2]
mov byte [rbp + 0x235], al
jmp case.default.0x180063e5d
mov r8d, 2
lea rdx, [0x1800760de]
lea rcx, [rbp + 0x1f0]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncat]
mov r8d, 2
mov word [rbp + 0x1f4], 0x6e
lea rdx, [0x18007611b]
lea rcx, [rbp + 0x1f0]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncat]
xor edx, edx
mov dword [rbp + 0x1f7], 0x6c616e72
jmp case.default.0x180063e5d
mov eax, 0x656d
mov byte [rbp + 0x243], 0
mov word [rbp + 0x241], ax
jmp case.default.0x180063e5d
xor eax, eax
xorps xmm0, xmm0
mov ecx, 0xfffffff5
mov dword [rbp + 0x220], eax
movups xmmword [rbp + 0x210], xmm0
mov word [rbp + 0x224], ax
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov qword [rbp - 0x80], rax
xor edx, edx
jmp case.default.0x180063e5d
movzx eax, word [0x18007613d]
mov word [rbp + 0x230], ax
movzx eax, byte [0x18007613f]
mov byte [rbp + 0x232], al
jmp case.default.0x180063e5d
mov eax, 0x534d
mov byte [rbp + 0x1f2], 0
mov word [rbp + 0x1f0], ax
jmp case.default.0x180063e5d
xorps xmm0, xmm0
xor eax, eax
mov qword [rbp + 0x40], rax
mov dword [rbp + 0x48], eax
mov eax, 0x9c
movups xmmword [rbp - 0x30], xmm0
mov word [rbp - 0x2c], ax
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 0x40], xmm0
movups xmmword [rbp - 0x20], xmm0
movups xmmword [rbp - 0x10], xmm0
movups xmmword [rbp], xmm0
movups xmmword [rbp + 0x10], xmm0
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp + 0x30], xmm0
inc ebx
lea eax, [rbx + 0x78]
cmp eax, 0x87
jb 0x180063e40
cmp qword [rbp - 0x78], 0
mov r10, qword [rsp + 0x78]
mov edx, dword [rsp + 0x38]
mov r9, qword [rsp + 0x68]
mov r8d, dword [rsp + 0x48]
jne 0x180063a02
mov byte [rsp + 0x30], 0
jmp 0x180063a02
mov byte [rsp + 0x30], 1
mov qword [rsp + 0x70], rcx
jmp 0x180063a02
mov rax, qword [r10 + 0x28]
movzx ecx, word [rax + r8*2]
add cx, word [r9]
mov word [rsp + 0x50], cx
jmp 0x180064145
test sil, sil
je 0x180064140
mov rcx, qword [rbp - 0x70]
call qword [sym.imp.GDI32.dll_DeleteDC]
mov byte [rsp + 0x50], 0
mov rax, qword [rsp + 0x50]
mov rcx, qword [rbp + 0x470]
xor rcx, rsp
call fcn.18006edc0
mov rbx, qword [rsp + 0x5c8]
add rsp, 0x580
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret