Function at 0x18002d380
Capabilities:
Manipulate console buffer

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x270]
sub rsp, 0x370
mov rax, qword [0x180135928]
xor rax, rsp
mov qword [rbp + 0x260], rax
imul eax, ecx, 0x145
xor r9d, r9d
mov r15, r8
mov qword [rbp - 0x60], r8
mov r12, rdx
mov qword [rbp - 0x58], rdx
mov r13d, ecx
mov dword [rsp + 0x64], ecx
mov esi, ecx
mov dword [rsp + 0x44], ecx
mov dword [rsp + 0x40], eax
cmp ecx, eax
ja 0x18002d9f9
movzx eax, byte [rsp + 0x30]
lea r10d, [r9 + 2]
mov ecx, dword [rsp + 0x40]
lea r11d, [r9 + 0x50]
mov ebx, dword [rsp + 0x40]
mov edi, dword [rsp + 0x40]
mov r13d, dword [rsp + 0x40]
mov byte [rsp + 0x30], al
movzx edx, byte [rsp + 0x30]
mov dword [rsp + 0x34], edx
mov qword [rsp + 0x38], rcx
mov r8d, 0x2f72
cmp esi, 0x50c
ja 0x18002d7b2
je 0x18002d7a2
cmp esi, 0x105
ja 0x18002d74b
je 0x18002d730
cmp esi, 0x11
je 0x18002d726
cmp esi, 0x55
je 0x18002d6ec
cmp esi, 0x62
jne 0x18002d9bc
cmp qword [0x180135a38], 0
je 0x18002d9bc
mov r12d, dword [rsp + 0x60]
mov r14d, 0xab
nop
cmp r14d, 0x2bf
ja 0x18002d592
je 0x18002d584
cmp r14d, 0x18f
ja 0x18002d523
je 0x18002d4fe
mov eax, r14d
sub eax, 0xab
je 0x18002d4f0
sub eax, 0x4c
je 0x18002d4d1
cmp eax, 0x4c
jne 0x18002d6bf
movzx eax, word [0x1801142ee]
mov word [rbp + 0x246], ax
movzx eax, byte [0x1801142f0]
mov byte [rbp + 0x248], al
mov byte [rbp + 0x249], 0
jmp 0x18002d6bf
mov r8d, 5
lea rdx, [0x180114291]
lea rcx, [rbp + 0x240]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncat]
jmp 0x18002d632
mov word [rbp + 0x240], 0x69
jmp 0x18002d6bf
mov eax, dword [0x1801142d1]
mov dword [rbp + 0x249], eax
movzx eax, byte [0x1801142d5]
mov byte [rbp + 0x24d], al
mov byte [rbp + 0x24e], 0
jmp 0x18002d6bf
mov eax, r14d
sub eax, 0x1db
je 0x18002d570
sub eax, 0x4c
je 0x18002d547
cmp eax, 0x4c
jne 0x18002d6bf
mov byte [rbp + 0x258], 0x73
jmp 0x18002d6bf
mov r8d, 4
lea rdx, [0x1801142c1]
lea rcx, [rbp + 0x240]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncat]
mov dword [rbp + 0x254], 0x65722e53
jmp 0x18002d632
mov word [rbp + 0x24e], r8w
mov byte [rbp + 0x250], 0
jmp 0x18002d6bf
mov byte [rbp + 0x259], 0
mov dl, 1
jmp 0x18002d6bb
cmp r14d, 0x43b
ja 0x18002d605
je 0x18002d5e9
mov eax, r14d
sub eax, 0x357
je 0x18002d5c8
sub eax, 0x4c
je 0x18002d5be
cmp eax, 0x4c
jne 0x18002d6bf
mov qword [rbp - 0x78], r9
jmp 0x18002d6bf
mov dword [rsp + 0x70], r9d
jmp 0x18002d6bf
lea rax, [rbp + 0x240]
mov rcx, 0xffffffffffffffff
inc rcx
cmp byte [rax + rcx], 0
jne 0x18002d5d6
mov qword [rsp + 0x38], rcx
jmp 0x18002d6bf
mov edx, ecx
lea r9, [rbp - 0x78]
lea rcx, [rbp + 0x240]
lea r8, [rsp + 0x70]
call sub.RPCRT4.dll_MesEncodeFixedBufferHandleCreate
mov r12d, eax
jmp 0x18002d632
mov eax, r14d
sub eax, 0x487
je 0x18002d6b1
sub eax, 0x4c
je 0x18002d646
cmp eax, 0x4c
jne 0x18002d6bf
mov rcx, qword [r15]
xor edx, edx
mov r8d, 0x8000
call qword [0x180135a38]
mov rcx, qword [rsp + 0x38]
xor r9d, r9d
mov edx, dword [rsp + 0x34]
mov r8d, 0x2f72
jmp 0x18002d6bf
test dl, dl
je 0x18002d6bf
mov esi, 0x7a
xor r15d, r15d
mov eax, esi
sub eax, 0x78
je 0x18002d684
sub eax, 1
je 0x18002d67e
cmp eax, 1
jne 0x18002d697
mov edx, ecx
mov qword [rbp - 0x70], r15
lea rcx, [rbp + 0x240]
lea r8, [rbp - 0x70]
call sub.RPCRT4.dll_MesDecodeBufferHandleCreate
mov r12d, eax
jmp 0x18002d692
mov rcx, qword [rbp - 0x78]
jmp 0x18002d688
mov rcx, qword [rbp - 0x70]
test rcx, rcx
je 0x18002d692
call sub.RPCRT4.dll_MesHandleFree
mov rcx, qword [rsp + 0x38]
dec esi
cmp esi, 0x77
ja 0x18002d652
mov r15, qword [rbp - 0x60]
xor r9d, r9d
mov edx, dword [rsp + 0x34]
mov r8d, 0x2f72
jmp 0x18002d6bf
test r12d, r12d
movzx edx, dl
cmovne edx, r9d
mov dword [rsp + 0x34], edx
add r14d, 0x4c
cmp r14d, 0x56b
jb 0x18002d470
mov esi, dword [rsp + 0x44]
mov r10d, 2
mov dword [rsp + 0x60], r12d
mov r12, qword [rbp - 0x58]
lea r11d, [r10 + 0x4e]
jmp 0x18002d9bc
test r15, r15
jne 0x18002d71e
mov eax, 0xaa
cmp eax, 0xaa
je 0x18002d70a
cmp eax, 0x12b
je 0x18002da8f
jmp 0x18002d712
mov dword [rsp + 0x58], 0xffffffff
add eax, 0x81
cmp eax, 0x1ac
jb 0x18002d6f6
mov r13d, r9d
jmp 0x18002d9bc
mov byte [rsp + 0x30], 1
jmp 0x18002d9bc
movzx ecx, byte [r12]
mov rax, qword [r15]
cmp rcx, rax
ja 0x18002d9e0
mov rcx, qword [rsp + 0x38]
jmp 0x18002d9bc
cmp esi, 0x1ba
je 0x18002d76e
cmp esi, 0x363
jne 0x18002d9bc
mov dword [rsp + 0x48], r9d
mov dword [rsp + 0x4c], r9d
jmp 0x18002d9bc
xor edx, edx
lea rcx, [rbp - 0x40]
mov r8d, 0x280
call sub.VCRUNTIME140.dll_memset
mov rcx, qword [r15 + 0x40]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [rsp + 0x38]
mov r10d, 2
lea r11d, [r10 + 0x4e]
jmp 0x18002d9bc
mov qword [rsp + 0x68], r9
mov word [rsp + 0x4e], r10w
jmp 0x18002d9bc
cmp esi, 0x10ef
ja 0x18002d98d
je 0x18002d7fd
mov eax, esi
sub eax, 0x6b5
je 0x18002d7f2
sub eax, 0x1a9
je 0x18002d7e5
cmp eax, 0x44
jne 0x18002d9bc
mov ebx, dword [r15 + 8]
mov edi, r9d
jmp 0x18002d9bc
mov dword [rsp + 0x48], 0
jmp 0x18002d9bc
mov word [rsp + 0x4c], r11w
jmp 0x18002d9bc
cmp ebx, 1
mov eax, r9d
cmova eax, ebx
mov ebx, eax
cmp r13d, eax
je 0x18002d9bc
mov r14d, 0xd9
nop word [rax + rax]
cmp r14d, 0xd9
je 0x18002d955
cmp r14d, 0x187
jne 0x18002d95b
mov rdx, qword [r15]
mov rcx, qword [r12]
mov eax, edi
mov rdx, qword [rdx + rax*8]
call qword [r15 + 0x18]
test eax, eax
jns 0x18002d856
mov ebx, edi
jmp 0x18002d95b
jle 0x18002d861
lea r13d, [rdi + 1]
jmp 0x18002d95b
mov esi, 0x8a
nop word [rax + rax]
cmp esi, 0x8a
je 0x18002d90e
cmp esi, 0x13e
je 0x18002d8d9
cmp esi, 0x1f2
je 0x18002d89d
cmp esi, 0x2a6
je 0x18002da8f
jmp 0x18002d941
mov edi, r13d
cmp r13d, ebx
ja 0x18002d8cf
nop word [rax + rax]
mov rdx, qword [r15]
mov rcx, qword [r12]
mov eax, edi
mov rdx, qword [rdx + rax*8]
call qword [r15 + 0x10]
test eax, eax
jne 0x18002d9f0
inc edi
cmp edi, ebx
jbe 0x18002d8b0
mov dword [rsp + 0x58], 0xffffffff
jmp 0x18002d941
mov rax, qword [r12]
lea r9, [rsp + 0x78]
mov qword [rbp - 0x50], rax
lea r8, [rsp + 0x50]
lea rax, [rbp - 0x50]
mov dword [rsp + 0x50], ebx
mov edx, 0x2d
mov qword [rsp + 0x20], rax
mov rcx, r15
mov dword [rsp + 0x78], edi
call fcn.1800dc720
mov rbx, rax
jmp 0x18002d941
mov rax, qword [r12]
lea r8, [rbp - 0x80]
mov qword [rbp - 0x68], rax
lea rcx, [rsp + 0x50]
lea rax, [rbp - 0x68]
mov dword [rsp + 0x50], edi
mov r9d, 0x5a
mov qword [rsp + 0x20], rax
mov rdx, r15
mov dword [rbp - 0x80], r13d
call fcn.1800ca070
mov r13d, eax
add esi, 0xb4
cmp esi, 0x35a
jb 0x18002d870
jmp 0x18002d95b
lea edi, [rbx + r13]
shr edi, 1
add r14d, 0xae
cmp r14d, 0x235
jb 0x18002d820
cmp r13d, ebx
jne 0x18002d811
mov rcx, qword [rsp + 0x38]
mov r10d, 2
mov esi, dword [rsp + 0x44]
lea r11d, [r10 + 0x4e]
jmp 0x18002d9bc
cmp esi, 0x193c
je 0x18002d9b4
cmp esi, 0x1a82
jne 0x18002d9bc
movzx eax, byte [r12]
mov rcx, qword [r15]
sub rcx, rax
mov qword [rsp + 0x58], rcx
mov rcx, qword [rsp + 0x38]
jmp 0x18002d9bc
mov dword [rsp + 0x58], 0xffffffff
imul eax, dword [rsp + 0x64], 0x19
xor r9d, r9d
add esi, eax
mov dword [rsp + 0x44], esi
cmp esi, dword [rsp + 0x40]
ja 0x18002da04
mov edx, dword [rsp + 0x34]
jmp 0x18002d410
sub rax, rcx
add rax, 0x40
jmp 0x18002da94
mov dword [rsp + 0x58], edi
jmp 0x18002da8f
movzx ebx, byte [rsp + 0x30]
mov byte [rsp + 0x30], bl
jmp 0x18002da0e
mov r13d, dword [rsp + 0x64]
movzx ebx, byte [rsp + 0x30]
lea r14d, [r13 + 0x624]
cmp r13d, r14d
jae 0x18002da8f
mov rsi, qword [rbp - 0x68]
mov ecx, 0xa
lea edx, [rcx + 1]
lea r8d, [rcx + 0x45]
nop word [rax + rax]
cmp r13d, 0x126
ja 0x18002dbc7
je 0x18002dba6
cmp r13d, 0xa3
ja 0x18002db85
je 0x18002db35
mov eax, r13d
sub eax, 0x11
je 0x18002dabe
sub eax, 0x44
je 0x18002da8f
cmp eax, 0x3f
jne 0x18002da73
mov r13d, 0x94
movzx ebx, byte [rsp + 0x30]
mov ecx, 0xa
add r13d, 0x83
lea edx, [rcx + 1]
lea r8d, [rcx + 0x45]
lea r9d, [rcx - 0xa]
cmp r13d, r14d
jb 0x18002da30
mov rax, qword [rsp + 0x58]
mov rcx, qword [rbp + 0x260]
xor rcx, rsp
call fcn.180106610
mov rbx, qword [rsp + 0x3b0]
add rsp, 0x370
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rbx, qword [r15 + 0x18]
mov rdi, qword [r15 + 0x20]
cmp rbx, rdi
je 0x18002da6e
nop dword [rax + rax]
cmp qword [r12 + 0x18], 0x10
mov rdx, r12
jb 0x18002dadf
mov rdx, qword [r12]
cmp qword [rbx + 0x18], 0x10
mov rcx, rbx
jb 0x18002daec
mov rcx, qword [rbx]
mov r8, qword [rbx + 0x10]
cmp r8, qword [r12 + 0x10]
jne 0x18002db27
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x18002db27
mov ecx, 0xda
mov eax, ecx
sub eax, 0xda
je 0x18002db19
cmp eax, 0x6e
je 0x18002da68
jmp 0x18002db1c
inc dword [rbx + 0x24]
add ecx, 0x6e
cmp ecx, 0x1b6
jb 0x18002db05
add rbx, 0x28
cmp rbx, rdi
jne 0x18002dad0
jmp 0x18002da6e
mov rax, qword [0x18016d688]
cmp qword [0x18016d680], rax
jne 0x18002db60
mov qword [rsp + 0x20], r9
lea rcx, [0x18016d680]
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0xf]
call fcn.1800dc720
xor eax, eax
lea rdx, [r15 + 0x60]
mov qword [rsp + 0x28], rax
mov r9d, 0xb7
xor r8d, r8d
mov qword [rsp + 0x20], rax
xor ecx, ecx
call fcn.180073610
jmp 0x18002da73
mov eax, r13d
sub eax, 0x105
je 0x18002da8f
cmp eax, 0x12
jne 0x18002da73
mov word [rsp + 0x6a], cx
jmp 0x18002da73
lea rdx, [r15 + 0x60]
xor r8d, r8d
lea r9, [0x18016d680]
mov ecx, 0x96
call fcn.180073300
mov byte [rsp + 0x58], al
jmp 0x18002da73
mov eax, r13d
sub eax, 0x19a
je 0x18002dc7a
sub eax, 0xf
je 0x18002da8f
sub eax, 0x74
je 0x18002dc4f
sub eax, 0x83
je 0x18002dc04
cmp eax, 0x83
jne 0x18002da73
mov rcx, qword [r15 + 0x40]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
jmp 0x18002da73
cmp rsi, 0xffffffffffffffff
movzx eax, bl
mov ecx, r9d
cmovne ecx, eax
mov byte [rsp + 0x30], cl
movzx ebx, cl
test cl, cl
je 0x18002da73
mov r9d, dword [rsp + 0x48]
lea rax, [rsp + 0x68]
mov r8d, dword [rsp + 0x4c]
lea rdx, [rbp - 0x40]
mov rcx, rsi
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WriteConsoleOutputW]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x18002da73
mov qword [rsp + 0x20], r9
mov ecx, 0xc0000000
mov r9d, 1
mov word [rsp + 0x6c], r8w
xor r8d, r8d
lea edx, [r9 + 2]
call qword [sym.imp.KERNEL32.dll_CreateConsoleScreenBuffer]
mov rsi, rax
jmp 0x18002da73
mov word [rsp + 0x68], r9w
mov word [rsp + 0x6e], dx
jmp 0x18002da73