Function at 0x140009e40
Capabilities:
Get file size
Write file on windows

Disassembly:
push rbp
push rbx
push r14
push r15
lea rbp, [rsp - 0x698]
sub rsp, 0x798
mov rax, qword [0x140031008]
xor rax, rsp
mov qword [rbp + 0x680], rax
xor r15d, r15d
mov r14, rcx
mov qword [rsp + 0x78], r15
test rcx, rcx
jne 0x140009f25
lea r8, str.Pages
lea rdx, [rsp + 0x78]
call fcn.140001c10
mov rbx, rax
test rax, rax
je 0x140009edc
sub rbx, qword [rsp + 0x78]
lea r8d, [r14 + 1]
mov qword [rsp + 0x30], r15
lea rcx, [rbp + 0x470]
sar rbx, 1
xor r9d, r9d
mov dword [rsp + 0x28], 0x80
mov edx, 0xc0000000
add ebx, ebx
mov dword [rsp + 0x20], 4
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r14, rax
cmp rax, 0xffffffffffffffff
jne 0x140009ee3
xor ecx, ecx
call fcn.140001440
xor eax, eax
jmp 0x14000a54e
lea r9, [rsp + 0x4c]
mov word [rsp + 0x40], 0xfeff
mov r8d, 2
mov qword [rsp + 0x20], r15
lea rdx, [rsp + 0x40]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
xor edx, edx
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetFileSize]
lea edx, [rbx - 4]
xor r9d, r9d
xor r8d, r8d
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov qword [rsp + 0x7c8], rsi
mov esi, 1
mov qword [rsp + 0x7d0], rdi
mov qword [rsp + 0x7d8], r12
movabs r12, 0x5b000a000d
mov edi, r15d
mov dword [rsp + 0x48], edi
mov qword [rsp + 0x790], r13
nop dword [rax + rax]
lea rcx, [rbp + 0x200]
test edi, edi
jne 0x140009f8b
mov ebx, dword [0x140036948]
lea rdx, str.Pages
mov dword [rsp + 0x44], ebx
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rdx, str.Page_03u
jmp 0x140009fa9
mov ebx, dword [0x14003694c]
lea rdx, str.SubMenus
mov dword [rsp + 0x44], ebx
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rdx, str.SubMenu_03u
lea rcx, [rbp + 0x3a0]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
xor edx, edx
mov qword [rbp + 0x60], r12
mov r8d, 0xc0
lea rcx, [rbp + 0x68]
call fcn.140015400
lea rdx, [rbp + 0x200]
lea rcx, [rbp + 0x60]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rdx, [0x14002ae00]
lea rcx, [rbp + 0x60]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rcx, [rbp + 0x60]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea r9, [rsp + 0x50]
mov qword [rsp + 0x20], r15
add eax, eax
lea rdx, [rbp + 0x60]
mov r8d, eax
mov dword [rsp + 0x50], eax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov r9d, ebx
lea r8, str.Count
lea rdx, str._s_d_r_n
and esi, eax
lea rcx, [rbp + 0x2d0]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rcx, [rbp + 0x2d0]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea r9, [rsp + 0x54]
mov qword [rsp + 0x20], r15
add eax, eax
lea rdx, [rbp + 0x2d0]
mov r8d, eax
mov dword [rsp + 0x54], eax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
and esi, eax
mov r12d, r15d
test ebx, ebx
jle 0x14000a4d5
mov rbx, r15
mov qword [rbp - 0x78], rdi
mov qword [rbp - 0x80], rbx
mov r13, r15
nop dword [rax]
nop word [rax + rax]
movabs rax, 0x5b000a000d
lea rcx, [rbp + 0x68]
xor edx, edx
mov qword [rbp + 0x60], rax
mov r8d, 0xc0
call fcn.140015400
lea rcx, [rbp + 0x60]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rcx, eax
mov r8d, r12d
lea rdx, [rbp + 0x3a0]
lea rax, [rbp + 0x60]
lea rcx, [rax + rcx*2]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rdx, [0x14002ae00]
lea rcx, [rbp + 0x60]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rcx, [rbp + 0x60]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea r9, [rsp + 0x58]
mov qword [rsp + 0x20], r15
add eax, eax
lea rdx, [rbp + 0x60]
mov r8d, eax
mov dword [rsp + 0x58], eax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
and esi, eax
test rdi, rdi
jne 0x14000a37e
cmp r12d, dword [0x140036948]
jge 0x14000a12d
mov r15, qword [0x140039a88]
add r15, rbx
lea rcx, [r15 + 4]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [rax*2 + 2]
movsxd rcx, eax
mov eax, 2
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.140013bc8
lea rcx, [r15 + 4]
mov qword [rsp + 0x70], rax
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
xor edx, edx
mov rcx, rdi
movsxd r9, eax
test eax, eax
js 0x14000a1ac
nop word [rax + rax]
movzx r8d, word [r15 + rdx*2 + 4]
mov word [rcx], r8w
test r8w, r8w
je 0x14000a1ac
cmp r8w, 0x5b
jne 0x14000a1a0
add rcx, 2
mov word [rcx], 0x5c
add rcx, 2
inc rdx
cmp rdx, r9
jle 0x14000a180
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea rcx, str._s_s_r_n
mov edi, eax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea rcx, str.Name
add edi, eax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea ecx, [rax + 1]
mov eax, 2
add ecx, edi
movsxd rdx, ecx
mov rcx, 0xffffffffffffffff
mul rdx
cmovo rax, rcx
mov rcx, rax
call fcn.140013bc8
mov r9, qword [rsp + 0x70]
lea r8, str.Name
lea rdx, str._s_s_r_n
mov rcx, rax
mov rdi, rax
call qword [sym.imp.USER32.dll_wsprintfW]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea r9, [rsp + 0x5c]
mov qword [rsp + 0x20], 0
add eax, eax
mov rdx, rdi
mov r8d, eax
mov dword [rsp + 0x5c], eax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, rdi
mov ebx, eax
call fcn.140013bc0
mov rcx, qword [rsp + 0x70]
call fcn.140013bc0
mov r8d, 1
lea rdx, str.ScrollMode_d
lea rcx, [rbp - 0x70]
and esi, ebx
mov ebx, dword [r15 + 0x15c]
call qword [sym.imp.USER32.dll_wsprintfW]
lea r8, [rbp - 0x70]
mov r9d, ebx
lea rdx, str._s_d_r_n
lea rcx, [rbp + 0x130]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rcx, [rbp + 0x130]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
xor edi, edi
lea r9, [rsp + 0x40]
add eax, eax
mov qword [rsp + 0x20], rdi
mov r8d, eax
mov dword [rsp + 0x40], eax
lea rdx, [rbp + 0x130]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov ebx, dword [r15 + 0x160]
lea r8d, [rdi + 2]
lea rdx, str.ScrollMode_d
and esi, eax
lea rcx, [rbp - 0x70]
call qword [sym.imp.USER32.dll_wsprintfW]
lea r8, [rbp - 0x70]
mov r9d, ebx
lea rdx, str._s_d_r_n
lea rcx, [rbp + 0x130]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rcx, [rbp + 0x130]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea r9, [rsp + 0x40]
mov qword [rsp + 0x20], rdi
add eax, eax
lea rdx, [rbp + 0x130]
mov r8d, eax
mov dword [rsp + 0x40], eax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov r9d, dword [r15 + 0x164]
lea r8, str.Flag
lea rdx, str._s_08x_r_n
and esi, eax
lea rcx, [rbp - 0x70]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rcx, [rbp - 0x70]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea r9, [rsp + 0x60]
mov qword [rsp + 0x20], rdi
add eax, eax
lea rdx, [rbp - 0x70]
mov r8d, eax
mov dword [rsp + 0x60], eax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov r15d, dword [r15]
jmp 0x14000a42a
cmp r12d, dword [0x14003694c]
jge 0x14000a393
mov rbx, qword [0x140039890]
add rbx, r13
jmp 0x14000a396
mov rbx, r15
movzx r9d, word [rbx]
lea r8, str.Page
mov r15d, dword [rbx + 8]
lea rdx, str._s_04x_r_n
lea rcx, [rbp - 0x70]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rcx, [rbp - 0x70]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
xor edi, edi
lea r9, [rsp + 0x64]
add eax, eax
mov qword [rsp + 0x20], rdi
mov r8d, eax
mov dword [rsp + 0x64], eax
lea rdx, [rbp - 0x70]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov r9d, dword [rbx + 4]
lea r8, str.Button
lea rdx, str._s_d_r_n
and esi, eax
lea rcx, [rbp - 0x70]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rcx, [rbp - 0x70]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea r9, [rsp + 0x68]
mov qword [rsp + 0x20], rdi
add eax, eax
lea rdx, [rbp - 0x70]
mov r8d, eax
mov dword [rsp + 0x68], eax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov r9d, r15d
lea r8, str.Count
lea rdx, str._s_d_r_n
and esi, eax
lea rcx, [rbp - 0x70]
call qword [sym.imp.USER32.dll_wsprintfW]
lea rcx, [rbp - 0x70]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea r9, [rsp + 0x4c]
mov qword [rsp + 0x20], rdi
add eax, eax
lea rdx, [rbp - 0x70]
mov r8d, eax
mov dword [rsp + 0x4c], eax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
and esi, eax
mov edi, r12d
bts edi, 0xf
cmp qword [rbp - 0x78], 0
cmove edi, r12d
xor ebx, ebx
test r15d, r15d
jle 0x14000a4a6
nop word [rax + rax]
mov r8d, ebx
mov edx, edi
mov rcx, r14
call fcn.14000a570
and esi, eax
inc ebx
cmp ebx, r15d
jl 0x14000a490
mov rbx, qword [rbp - 0x80]
inc r12d
mov rdi, qword [rbp - 0x78]
add rbx, 0x168
add r13, 0xc
mov qword [rbp - 0x80], rbx
mov r15d, 0
cmp r12d, dword [rsp + 0x44]
jl 0x14000a090
mov edi, dword [rsp + 0x48]
inc edi
movabs r12, 0x5b000a000d
mov dword [rsp + 0x48], edi
cmp edi, 2
jl 0x140009f60
cmp qword [rsp + 0x78], 0
mov r13, qword [rsp + 0x790]
mov r12, qword [rsp + 0x7d8]
mov rdi, qword [rsp + 0x7d0]
je 0x14000a539
mov rcx, qword [0x140036ed8]
test rcx, rcx
je 0x14000a527
call qword [sym.imp.KERNEL32.dll_HeapDestroy]
mov qword [0x140036ed8], r15
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
mov rsi, qword [rsp + 0x7c8]
je 0x140009ed5
mov eax, 1
mov rcx, qword [rbp + 0x680]
xor rcx, rsp
call fcn.140013ba0
add rsp, 0x798
pop r15
pop r14
pop rbx
pop rbp
ret