Function at 0x14004c6c0
Capabilities:
Extract resource via kernel32 functions
Manipulate console buffer

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x7d8]
sub rsp, 0x8d8
mov rax, qword [0x1400ad368]
xor rax, rsp
mov qword [rbp + 0x7c0], rax
mov rbx, qword [0x1400b0dd0]
mov r13, rcx
mov rcx, rbx
mov qword [rsp + 0x50], r9
mov rsi, r8
mov dword [rsp + 0x34], edx
mov r14d, edx
call fcn.140038fa0
mov r15, qword [rbx + 0x2718]
mov ecx, eax
test r15, r15
jne 0x14004c723
mov r15, qword [rbx + 0x2710]
movzx eax, r14w
xor r12d, r12d
shr ax, 4
movzx r9d, cx
inc ax
mov rcx, r15
movzx eax, ax
mov edi, r12d
mov r8d, eax
mov qword [rsp + 0x38], rax
lea edx, [r12 + 6]
movzx ebx, r14w
call qword [sym.imp.KERNEL32.dll_FindResourceExW]
lea r14d, [r12 + 0x4c]
test rax, rax
je 0x14004c7b9
mov rdx, rax
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
test rax, rax
je 0x14004c7b9
movzx edi, word [rax]
lea rdx, [rax + 2]
and ebx, 0xf
je 0x14004c7a0
nop word [rax + rax]
lea rdx, [rdx + rdi*2]
movzx edi, word [rdx]
add rdx, 2
sub ebx, 1
jne 0x14004c790
cmp edi, r14d
lea rcx, [rbp + 0x720]
cmova edi, r14d
mov r8d, edi
add r8, r8
call fcn.140053490
mov eax, edi
mov word [rbp + rax*2 + 0x720], r12w
mov r12, 0xffffffffffffffff
lea r14d, [r12 + 0x4e]
test edi, edi
jne 0x14004c8ab
mov r8, qword [rsp + 0x38]
xor ebx, ebx
movzx edi, word [rsp + 0x34]
mov r9d, 0x409
mov rcx, r15
lea edx, [rbx + 6]
call qword [sym.imp.KERNEL32.dll_FindResourceExW]
test rax, rax
je 0x14004c85d
mov rdx, rax
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
test rax, rax
je 0x14004c85d
movzx ebx, word [rax]
lea rdx, [rax + 2]
and edi, 0xf
je 0x14004c840
nop dword [rax]
nop word [rax + rax]
lea rdx, [rdx + rbx*2]
movzx ebx, word [rdx]
add rdx, 2
sub edi, 1
jne 0x14004c830
cmp ebx, 0x4c
lea rcx, [rbp + 0x720]
mov eax, 0x4c
cmova ebx, eax
mov r8d, ebx
add r8, r8
call fcn.140053490
xor edi, edi
mov word [rbp + rbx*2 + 0x720], di
test ebx, ebx
jne 0x14004c8ad
mov rax, r12
nop
inc rax
cmp word [rsi + rax*2], di
jne 0x14004c870
lfence
lea rcx, [rbp + 0x720]
mov r8, rsi
mov rdx, r14
cmp rax, r14
jae 0x14004c895
call fcn.140069780
jmp 0x14004c8ad
mov ebx, 0x4c
mov r9d, ebx
call fcn.14005a91c
mov word [rbp + 0x7b8], di
jmp 0x14004c8b2
xor edi, edi
mov ebx, 0x4c
lea rax, [rbp + 0x720]
mov rcx, r12
nop dword [rax]
inc rcx
cmp word [rax + rcx*2], 0
jne 0x14004c8c0
lea rax, [rcx + 1]
cmp rax, r14
jae 0x14004c91a
lea rax, [rcx + 4]
lea r8, [0x14009f658]
cmp rax, r14
ja 0x14004c8f4
mov rdx, r14
lea rcx, [rbp + 0x720]
call fcn.140069860
jmp 0x14004c91a
lfence
sub rbx, rcx
lea rax, [rbp + 0x720]
sub r14, rcx
mov r9, rbx
lea rcx, [rax + rcx*2]
mov rdx, r14
call fcn.14005a91c
mov word [rbp + 0x7b8], di
lea rax, [rbp + 0x720]
inc r12
cmp word [rax + r12*2], 0
jne 0x14004c921
add r12w, 2
mov esi, 3
mov word [rsp + 0x38], r12w
mov rcx, r13
mov word [rsp + 0x3a], si
mov eax, dword [rsp + 0x38]
mov dword [rsp + 0x30], eax
call fcn.14004e310
mov rcx, qword [r13 + 8]
lea rdx, [r13 + 0x402c]
mov ebx, dword [r13 + 0x4030]
mov dword [rsp + 0x38], 0
call qword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
mov eax, dword [r13 + 0x4030]
movzx r10d, word [r13 + 0x4036]
movzx r8d, word [r13 + 0x403a]
movzx r11d, word [r13 + 0x4038]
sub r8w, r10w
movzx ecx, word [r13 + 0x403c]
inc r8w
sub cx, r11w
mov dword [r13 + 0x404c], eax
inc cx
mov dword [r13 + 0x4030], ebx
cmp cx, 2
jl 0x14004cda2
cmp r8w, 2
jl 0x14004cda2
movzx eax, word [rsp + 0x32]
cmp si, cx
mov ebx, dword [rsp + 0x38]
movzx r9d, cx
cmovg ax, cx
cmovle r9w, si
mov word [rsp + 0x32], ax
movzx edx, r8w
movzx eax, word [rsp + 0x30]
cmp ax, r8w
movsx ecx, cx
movzx r15d, ax
movsx r14d, r9w
cmovle dx, ax
mov word [rsp + 0x48], r9w
cmovg r15w, r8w
movsx esi, dx
sub ecx, r14d
movsx eax, r8w
sub eax, esi
sar ecx, 1
sar eax, 1
add cx, r11w
add ax, r10w
mov word [rsp + 0x42], cx
dec dx
mov word [rsp + 0x40], ax
add ax, dx
mov word [rsp + 0x30], r15w
mov edi, dword [rsp + 0x30]
lea rdx, [rbp + 0x340]
dec r9w
mov word [rsp + 0x44], ax
add cx, r9w
lea rax, [rsp + 0x40]
mov word [rsp + 0x46], cx
mov r9d, ebx
mov rcx, qword [r13 + 8]
mov r8d, edi
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_ReadConsoleOutputW]
imul r14d, esi
movsxd r8, r14d
shl r8, 2
test r8, r8
je 0x14004ca95
lea rdx, [rbp + 0x340]
lea rcx, [rsp + 0x60]
call fcn.140053490
xor r14d, r14d
movzx r9d, r14w
cmp word [rsp + 0x48], r14w
jle 0x14004caf9
movzx r10d, word [rsp + 0x32]
nop word [rax + rax]
movzx eax, r14w
test r15w, r15w
jle 0x14004caef
movsx r8d, r9w
movsx ecx, r15w
imul r8d, ecx
nop word [rax + rax]
movsx ecx, ax
inc ax
add ecx, r8d
movsxd rdx, ecx
movzx ecx, word [r13 + 0x4088]
mov word [rsp + rdx*4 + 0x62], cx
cmp ax, r15w
jl 0x14004cad0
inc r9w
cmp r9w, r10w
jl 0x14004cab0
movsx r9d, word [rsp + 0x32]
mov eax, 0x250c
mov word [rsp + 0x60], ax
mov ecx, 0x2510
movsx rax, r15w
mov edx, 0x2514
movsx esi, r15w
mov r10d, 1
lea r11d, [r9 - 1]
mov r8d, r11d
mov word [rsp + rax*4 + 0x5c], cx
mov ecx, r9d
imul ecx, esi
imul r8d, esi
movsxd rax, r8d
mov word [rsp + rax*4 + 0x60], dx
movsxd rax, ecx
mov ecx, 0x2518
mov word [rsp + rax*4 + 0x5c], cx
movzx ecx, r10w
cmp r15w, 2
jle 0x14004cb7a
lea edx, [rsi - 1]
mov r10d, 0x2500
movsx rax, cx
inc cx
mov word [rsp + rax*4 + 0x60], r10w
movsx eax, cx
cmp edx, eax
jg 0x14004cb60
mov r10d, 1
movzx edx, r10w
cmp r15w, 2
jle 0x14004cbb1
mov eax, r10d
mov edi, 0x2500
lea r10d, [rsi - 1]
add eax, r8d
inc dx
movsxd rcx, eax
movsx eax, dx
mov word [rsp + rcx*4 + 0x60], di
cmp r10d, eax
jg 0x14004cb91
mov edi, dword [rsp + 0x30]
mov r10d, 1
movzx ecx, r10w
mov r8d, 0x2502
cmp r9d, 2
jle 0x14004cbe6
mov eax, r10d
nop dword [rax]
nop dword [rax + rax]
imul eax, esi
inc cx
cdqe
mov word [rsp + rax*4 + 0x60], r8w
movsx eax, cx
cmp r11d, eax
jg 0x14004cbd0
movzx edx, r10w
cmp r9d, 2
jle 0x14004cc70
mov eax, r10d
nop word [rax + rax]
inc eax
inc dx
imul eax, esi
movsxd rcx, eax
movsx eax, dx
mov word [rsp + rcx*4 + 0x5c], r8w
cmp r11d, eax
jg 0x14004cc00
cmp r9d, 2
jle 0x14004cc70
mov ebx, 1
lea r9d, [rsi - 1]
mov r8d, ebx
nop dword [rax + rax]
movzx edx, bx
cmp r9d, 1
jle 0x14004cc5f
mov eax, ebx
imul r8d, esi
mov ebx, 0x20
add eax, r8d
inc dx
movsxd rcx, eax
movsx eax, dx
mov word [rsp + rcx*4 + 0x60], bx
cmp r9d, eax
jg 0x14004cc44
mov ebx, 1
inc r10w
movsx r8d, r10w
cmp r11d, r8d
jg 0x14004cc30
mov ebx, dword [rsp + 0x38]
mov rcx, qword [r13 + 8]
lea rax, [rsp + 0x40]
mov r9d, ebx
mov qword [rsp + 0x20], rax
mov r8d, edi
lea rdx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_WriteConsoleOutputW]
mov rdx, 0xffffffffffffffff
cmp r12w, r15w
jle 0x14004cce2
lea rax, [rbp + 0x720]
mov rcx, rdx
inc rcx
cmp word [rax + rcx*2], r14w
jne 0x14004cca6
movsx eax, r12w
sub eax, esi
cmp eax, ecx
jge 0x14004ccd6
cdqe
sub rcx, rax
lea rcx, [rcx*2 - 2]
cmp rcx, 0x9a
jae 0x14004cdc7
jmp 0x14004ccd9
mov rcx, r14
mov word [rbp + rcx + 0x720], r14w
movzx eax, word [rsp + 0x40]
inc ax
mov word [rsp + 0x34], ax
movzx eax, word [rsp + 0x42]
inc ax
mov word [rsp + 0x36], ax
lea rax, [rbp + 0x720]
inc rdx
cmp word [rax + rdx*2], r14w
jne 0x14004cd03
mov r8, rdx
lea r9, [rsp + 0x34]
lea rdx, [rbp + 0x720]
mov rcx, r13
call fcn.14004e140
mov r12d, 0x1b
mov r15d, 0xe0
mov sil, 1
test sil, sil
jne 0x14004cd3d
call fcn.140069274
xor sil, sil
call fcn.140069274
movzx ebx, ax
cmp r12w, ax
je 0x14004cd30
cmp r14w, ax
je 0x14004cd33
cmp r15w, ax
je 0x14004cd33
mov rcx, qword [r13 + 8]
lea rax, [rsp + 0x40]
mov r9d, r14d
mov qword [rsp + 0x20], rax
mov r8d, edi
mov dword [rsp + 0x34], r14d
lea rdx, [rbp + 0x340]
call qword [sym.imp.KERNEL32.dll_WriteConsoleOutputW]
mov edx, dword [r13 + 0x404c]
mov rcx, qword [r13 + 8]
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov rax, qword [rsp + 0x50]
test rax, rax
je 0x14004cd9e
mov word [rax], bx
mov al, 1
jmp 0x14004cda4
xor al, al
mov rcx, qword [rbp + 0x7c0]
xor rcx, rsp
call fcn.140050ca0
add rsp, 0x8d8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.140051344
int3