Function at 0x180010c20
Capabilities:
Get file size
Manipulate console buffer
Read file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x180]
sub rsp, 0x280
mov rax, qword [0x18006f730]
xor rax, rsp
mov qword [rbp + 0x170], rax
mov eax, r8d
mov qword [rbp - 0x78], rdx
mov r8, rdx
mov dword [rsp + 0x54], eax
mov r12, rcx
mov qword [rbp - 0x70], rcx
lea edx, [rax + 0x13]
mov dword [rsp + 0x44], edx
cmp eax, edx
jae case.0x180010df7.0
movzx r13d, byte [rsp + 0x40]
xor r9d, r9d
mov rsi, qword [rbp - 0x78]
movzx r15d, byte [rsp + 0x40]
mov r14d, dword [rsp + 0x58]
add eax, 0xffffff3d
lea r10, [0x180000000]
movabs r11, 0x2000640070006c
cmp eax, 0x35
ja case.0x180010cbf.214
movzx eax, byte [r10 + rax + 0x1123c]
mov ecx, dword [r10 + rax*4 + 0x111ec]
add rcx, r10
jmp rcx
movzx eax, word [r8]
mov word [0x18006f8b0], ax
movzx eax, word [r12]
mov word [0x18006f8b2], ax
jmp case.0x180010cbf.214
mov word [rbp + 0x40], r9w
jmp case.0x180010cbf.214
mov dword [rsp + 0x50], r9d
jmp case.0x180010cbf.214
xor r9d, r9d
mov dword [rsp + 0x28], 0x104
lea rax, [rbp + 0x60]
lea r8, [rbp - 0x60]
mov qword [rsp + 0x20], rax
lea edx, [r9 + 2]
lea ecx, [rdx + 0x7d]
call qword [sym.imp.KERNEL32.dll_GetDateFormatA]
test r13b, r13b
je 0x180010da7
mov edi, 0x8d
xor r12d, r12d
cmp edi, 0x8d
je 0x180010d7b
cmp edi, 0x4218
jne 0x180010d95
test r13b, r13b
je 0x180010d95
mov ebx, 0x110
mov eax, ebx
sub eax, 0x10f
je 0x180010d61
cmp eax, 1
jne 0x180010d6f
xor r8d, r8d
lea rdx, [rbp - 0x30]
mov rcx, rsi
call qword [sym.imp.WINMM.dll_mmioSetInfo]
jmp 0x180010d6f
mov edx, 0x10
mov rcx, rsi
call qword [sym.imp.WINMM.dll_mmioClose]
dec ebx
cmp ebx, 0x10e
ja 0x180010d41
jmp 0x180010d95
xor r8d, r8d
lea rdx, [rbp - 0x30]
mov rcx, rsi
call qword [sym.imp.WINMM.dll_mmioGetInfo]
test eax, eax
movzx r13d, r13b
cmovne r13d, r12d
add edi, 0x418b
cmp edi, 0x8316
jbe 0x180010d27
mov r12, qword [rbp - 0x70]
mov edx, dword [rsp + 0x44]
xor r9d, r9d
jmp case.0x180010cbf.214
mov r8d, 3
lea rdx, str.mo_GetSelection_wxBookCtrlBase__UBEHXZ
lea rcx, [rbp + 0x40]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncat]
mov edx, dword [rsp + 0x44]
xor r9d, r9d
jmp case.0x180010cbf.214
mov eax, dword [rsp + 0x48]
cmp eax, dword [rsp + 0x50]
je 0x180010e3d
mov ebx, 5
cmp ebx, 5
ja case.0x180010df7.2
mov eax, ebx
mov ecx, dword [r10 + rax*4 + 0x11274]
add rcx, r10
jmp rcx
lea rcx, [rbp - 0x68]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xor r9d, r9d
mov byte [rsp + 0x4c], 0
lea r10, [0x180000000]
jmp case.0x180010df7.2
mov qword [r12 + 0x10], r9
mov rax, r12
cmp qword [r12 + 0x18], 0x10
jb 0x180010e28
mov rax, qword [r12]
mov byte [rax], 0
mov qword [rbp - 0x68], r9
dec ebx
lea eax, [rbx + 0x39]
cmp eax, 0x38
ja 0x180010de5
mov edx, dword [rsp + 0x44]
test rsi, rsi
jne case.0x180010cbf.214
mov ebx, 0x67
nop dword [rax + rax]
mov eax, ebx
sub eax, 0x67
je 0x180010e61
cmp eax, 0x4b
jne 0x180010e6e
xor r13b, r13b
jmp 0x180010e6e
mov edx, 0x10
xor ecx, ecx
call qword [sym.imp.WINMM.dll_mmioClose]
add ebx, 0x4b
cmp ebx, 0xfd
jb 0x180010e50
mov edx, dword [rsp + 0x44]
xor r9d, r9d
jmp case.0x180010cbf.214
cmp qword [rsp + 0x60], 0xffffffffffffffff
jne case.0x180010cbf.214
mov edi, 0x70
nop word [rax + rax]
cmp edi, 0x27d0
ja 0x180010f59
je 0x180010f29
cmp edi, 0x70
je 0x180010f21
cmp edi, 0x850
je 0x180010f12
cmp edi, 0x1030
je 0x180010f03
cmp edi, 0x1810
je 0x180010ee7
cmp edi, 0x1ff0
jne 0x18001104b
xorps xmm0, xmm0
movups xmmword [rbp - 0x50], xmm0
movups xmmword [rbp - 0x40], xmm0
jmp 0x18001104b
lea r9, [rsp + 0x78]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call sub.RPCRT4.dll_MesEncodeIncrementalHandleCreate
mov r14d, eax
xor r9d, r9d
jmp 0x18001104b
mov qword [rsp + 0x78], r9
mov dword [rsp + 0x68], r9d
jmp 0x18001104b
mov byte [rsp + 0x40], 1
mov qword [rsp + 0x70], r9
jmp 0x18001104b
mov r15b, 1
jmp 0x18001104b
mov edx, dword [rsp + 0x68]
lea r8, [rbp - 0x50]
mov rcx, qword [rsp + 0x70]
call sub.IMM32.dll_ImmGetCandidateWindow
xor r9d, r9d
mov dword [rsp + 0x6c], eax
movzx eax, byte [rsp + 0x40]
test r14d, r14d
mov ecx, r9d
cmove ecx, eax
mov byte [rsp + 0x40], cl
jmp 0x18001104b
cmp edi, 0x2fb0
je 0x180010fd1
cmp edi, 0x3790
je 0x180010fb5
cmp edi, 0x3f70
je 0x180010fab
cmp edi, 0x4750
jne 0x18001104b
mov eax, dword [rsp + 0x4c]
mov rcx, qword [rbp + 0x170]
xor rcx, rsp
call fcn.18003c900
mov rbx, qword [rsp + 0x2d0]
add rsp, 0x280
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov byte [rsp + 0x4c], 0
jmp 0x18001104b
test r15b, r15b
je 0x18001104b
mov rcx, qword [rsp + 0x70]
lea rdx, [rbp - 0x50]
call sub.IMM32.dll_ImmSetCandidateWindow
xor r9d, r9d
jmp 0x18001104b
cmp byte [rsp + 0x40], 0
je 0x18001103e
mov ebx, 0x75
nop dword [rax]
cmp ebx, 0x75
je 0x18001102c
cmp ebx, 0xfff
je 0x180011017
cmp ebx, 0x1f89
je 0x180011003
cmp ebx, 0x2f13
jne 0x180011030
mov rcx, qword [rbp - 0x80]
jmp 0x180011008
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x180011030
call sub.RPCRT4.dll_MesHandleFree
xor r9d, r9d
jmp 0x180011030
lea r8, [rbp - 0x80]
xor edx, edx
xor ecx, ecx
call sub.RPCRT4.dll_MesDecodeIncrementalHandleCreate
mov r14d, eax
xor r9d, r9d
jmp 0x180011030
mov qword [rbp - 0x80], r9
add ebx, 0xf8a
cmp ebx, 0x3e28
jbe 0x180010fe0
cmp dword [rsp + 0x6c], 0
movzx r15d, r15b
cmove r15d, r9d
add edi, 0x7e0
cmp edi, 0x4ec0
jbe 0x180010ea0
mov edx, dword [rsp + 0x44]
jmp case.0x180010cbf.214
mov edx, dword [0x18006f8b0]
mov rcx, qword [0x18006f8a8]
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov edx, dword [rsp + 0x44]
xor r9d, r9d
jmp case.0x180010cbf.214
mov r13b, 1
jmp case.0x180010cbf.214
mov r8d, dword [rsp + 0x58]
lea rdx, [rbp - 0x30]
lea rcx, [rbp + 0x40]
call qword [sym.imp.WINMM.dll_mmioOpenW]
mov rcx, qword [rsp + 0x60]
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [rsp + 0x44]
xor r9d, r9d
jmp case.0x180010cbf.214
mov rcx, qword [rsp + 0x60]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov edx, dword [rsp + 0x44]
xorps xmm0, xmm0
movups xmmword [rbp - 0x60], xmm0
mov dword [rsp + 0x48], eax
xor r9d, r9d
jmp case.0x180010cbf.214
movsd xmm0, qword [0x180053160]
movzx eax, word [0x180053168]
movsd qword [rbp + 0x4e], xmm0
mov word [rbp + 0x56], ax
jmp case.0x180010cbf.214
cmp qword [r8 + 0x18], 8
mov rcx, r8
mov word [rbp + 0x58], r9w
jb 0x18001110d
mov rcx, qword [r8]
mov qword [rsp + 0x30], r9
mov edx, 0x80000000
xor r9d, r9d
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 3]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov edx, dword [rsp + 0x44]
xor r9d, r9d
mov qword [rsp + 0x60], rax
jmp case.0x180010cbf.214
mov qword [rbp + 0x46], r11
jmp case.0x180010cbf.214
mov edx, dword [rsp + 0x48]
xorps xmm0, xmm0
xor eax, eax
xor r8d, r8d
mov rcx, r12
mov dword [rbp + 0x30], eax
movups xmmword [rbp - 0x30], 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
call fcn.1800300a0
mov edx, dword [rsp + 0x44]
xor r9d, r9d
jmp case.0x180010cbf.214
cmp qword [r12 + 0x18], 0x10
mov rdx, r12
jb 0x180011192
mov rdx, qword [r12]
mov r8d, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x20], r9
lea r9, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov edx, dword [rsp + 0x44]
xor r9d, r9d
mov dword [rsp + 0x58], r9d
jmp case.0x180010cbf.214
mov byte [rsp + 0x4c], 1
mov eax, dword [rsp + 0x54]
inc eax
mov dword [rsp + 0x54], eax
cmp eax, edx
jae case.0x180010df7.0
mov r8, qword [rbp - 0x78]
jmp 0x180010c8c
mov eax, dword [r8 + 0x20]
jmp 0x180010f81