Function at 0x18000c1dc
Capabilities:
Read file on windows

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xa8
mov rax, qword [0x18004a010]
xor rax, rsp
mov qword [rbp + 7], rax
mov rdi, rcx
mov qword [rbp - 0x21], r8
mov ecx, dword [rcx + 0x38]
mov rbx, r9
mov esi, edx
mov r10, r8
cmp edx, ecx
jb 0x18000c224
add ecx, dword [rdi + 0x3c]
cmp esi, ecx
jb 0x18000c78c
and qword [rsp + 0x20], 0
lea rdx, [0x180040fc0]
xor r9d, r9d
mov rcx, r10
lea r8d, [r9 + 3]
call qword [sym.imp.USER32.dll_GetTabbedTextExtentW]
and dword [rbp - 0x39], 0
movzx ecx, ax
mov eax, dword [rbx + 0x14]
add eax, ecx
mov dword [rbp - 0x31], eax
mov eax, dword [rdi + 8]
mov dword [rbp - 0x51], eax
cmp rsi, qword [rdi + 8]
jb 0x18000c26f
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0xc000008c
call qword [sym.imp.KERNEL32.dll_RaiseException]
mov rax, qword [rdi]
lea rcx, [rsi + rsi*4]
mov r15d, 1
lea r12d, [rsi + 1]
mov r13d, esi
mov ebx, r15d
mov r14d, r15d
mov eax, dword [rax + rcx*4 + 8]
mov dword [rbp - 0x59], eax
test ebx, ebx
je 0x18000c2e8
xor ebx, ebx
test esi, esi
je 0x18000c2e8
lea edx, [rsi - 1]
mov eax, edx
mov dword [rbp - 0x35], edx
mov qword [rbp - 0x41], rax
cmp rax, qword [rdi + 8]
jb 0x18000c2c6
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0xc000008c
call qword [sym.imp.KERNEL32.dll_RaiseException]
lea rcx, [rax + rax*4]
mov rax, qword [rdi]
mov r8d, dword [rax + rcx*4 + 8]
add r8d, dword [rbp - 0x59]
cmp r8d, 0x9c40
ja 0x18000c2e8
mov dword [rbp - 0x59], r8d
mov esi, edx
mov ebx, r15d
test r14d, r14d
je 0x18000c337
xor r14d, r14d
cmp r12d, dword [rbp - 0x51]
jae 0x18000c337
mov eax, r12d
cmp rax, qword [rdi + 8]
jb 0x18000c315
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0xc000008c
call qword [sym.imp.KERNEL32.dll_RaiseException]
lea rcx, [rax + rax*4]
mov rax, qword [rdi]
mov edx, dword [rax + rcx*4 + 8]
add edx, dword [rbp - 0x59]
cmp edx, 0x9c40
ja 0x18000c337
add r13d, r15d
mov dword [rbp - 0x59], edx
add r12d, r15d
mov r14d, r15d
test ebx, ebx
jne 0x18000c294
test r14d, r14d
jne 0x18000c290
mov ebx, dword [rdi + 0x38]
sub r13d, esi
add r13d, r15d
mov dword [rbp - 0x35], r13d
cmp ebx, esi
ja 0x18000c410
mov r14d, dword [rdi + 0x3c]
add r14d, ebx
cmp esi, r14d
jae 0x18000c410
mov rdx, qword [rdi + 8]
lea eax, [r14 - 1]
mov dword [rbp - 0x4d], eax
mov r12d, r14d
mov eax, r13d
sub r12d, esi
sub eax, r12d
mov r13d, esi
mov dword [rbp - 0x51], eax
mov ebx, esi
dec eax
add eax, r14d
mov dword [rbp - 0x55], eax
cmp r13, rdx
jb 0x18000c3b0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0xc000008c
call qword [sym.imp.KERNEL32.dll_RaiseException]
mov rcx, qword [rdi]
lea rax, [r13*4]
add rax, r13
mov r13d, dword [rbp - 0x4d]
lea rax, [rcx + rax*4]
mov qword [rbp - 0x41], rax
cmp r13, rdx
jb 0x18000c3e5
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0xc000008c
call qword [sym.imp.KERNEL32.dll_RaiseException]
mov rdx, qword [rbp - 0x41]
lea rax, [r13*4]
add rax, r13
xor r9d, r9d
mov edx, dword [rdx + 4]
mov r13d, dword [rcx + rax*4 + 8]
add r13d, dword [rcx + rax*4 + 4]
sub r13d, edx
mov dword [rbp - 0x59], r13d
jmp 0x18000c53f
lea ecx, [rsi + r13]
cmp esi, ebx
ja 0x18000c51d
cmp ebx, ecx
jae 0x18000c51d
mov rdx, qword [rdi + 8]
lea eax, [rbx - 1]
mov r12d, r13d
mov r14d, esi
sub r12d, ebx
add r12d, esi
add eax, r12d
mov dword [rbp - 0x4d], eax
mov eax, r13d
sub eax, r12d
mov dword [rbp - 0x51], eax
dec eax
add eax, esi
mov dword [rbp - 0x55], eax
cmp rbx, rdx
jb 0x18000c469
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0xc000008c
call qword [sym.imp.KERNEL32.dll_RaiseException]
mov rcx, qword [rdi]
lea rax, [rbx*4]
mov r13d, dword [rbp - 0x4d]
add rax, rbx
lea rax, [rcx + rax*4]
mov qword [rbp - 0x41], rax
cmp r13, rdx
jb 0x18000c49e
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0xc000008c
call qword [sym.imp.KERNEL32.dll_RaiseException]
mov rdx, qword [rbp - 0x41]
lea rax, [r13*4]
add rax, r13
xor r9d, r9d
mov dword [rbp - 0x49], r9d
mov edx, dword [rdx + 4]
mov r13d, dword [rcx + rax*4 + 8]
add r13d, dword [rcx + rax*4 + 4]
sub r13d, edx
mov eax, esi
mov dword [rbp - 0x41], edx
mov dword [rbp - 0x59], eax
cmp esi, dword [rbp - 0x55]
ja 0x18000c517
mov qword [rbp - 0x29], rax
cmp rax, qword [rdi + 8]
jb 0x18000c4f6
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0xc000008c
call qword [sym.imp.KERNEL32.dll_RaiseException]
lea rcx, [rax + rax*4]
mov rax, qword [rdi]
add r9d, dword [rax + rcx*4 + 8]
mov eax, dword [rbp - 0x59]
add eax, r15d
mov dword [rbp - 0x49], r9d
mov dword [rbp - 0x59], eax
cmp eax, dword [rbp - 0x55]
jbe 0x18000c4d1
mov edx, dword [rbp - 0x41]
and dword [rbp - 0x59], 0
jmp 0x18000c543
mov eax, dword [rbp - 0x35]
xor edx, edx
and dword [rbp - 0x4d], edx
xor r13d, r13d
mov dword [rbp - 0x51], eax
xor r9d, r9d
lea eax, [rcx - 1]
xor r12d, r12d
xor ebx, ebx
mov dword [rbp - 0x55], eax
and dword [rbp - 0x59], edx
mov r14d, esi
mov dword [rbp - 0x49], r9d
test r12d, r12d
je 0x18000c5a4
mov rcx, qword [rdi + 0x40]
mov eax, edx
mov r8d, r13d
add r8, r8
lea rdx, [rcx + rax*2]
lea rcx, [rcx + r9*2]
call fcn.180025930
mov r13d, dword [rbp - 0x4d]
cmp ebx, r13d
ja 0x18000c5a4
mov r12d, dword [rbp - 0x49]
mov eax, ebx
cmp rax, qword [rdi + 8]
jb 0x18000c58b
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0xc000008c
call qword [sym.imp.KERNEL32.dll_RaiseException]
lea rcx, [rax + rax*4]
add ebx, r15d
mov rax, qword [rdi]
mov dword [rax + rcx*4 + 4], r12d
add r12d, dword [rax + rcx*4 + 8]
cmp ebx, r13d
jbe 0x18000c56e
cmp dword [rbp - 0x51], 0
jbe 0x18000c743
xor r12d, r12d
mov ebx, r14d
cmp rbx, qword [rdi + 8]
jb 0x18000c5cd
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0xc000008c
call qword [sym.imp.KERNEL32.dll_RaiseException]
mov rax, qword [rdi]
lea rcx, [rbx + rbx*4]
xor r9d, r9d
xor r8d, r8d
mov edx, dword [rax + rcx*4]
mov rcx, qword [rdi + 0x18]
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov r13d, dword [rbp - 0x55]
jmp 0x18000c73a
mov r8d, dword [rdi + 0x48]
lea r9, [rbp - 0x55]
mov rcx, qword [rdi + 0x18]
sub r8d, r12d
and dword [rbp - 0x55], 0
and qword [rsp + 0x20], 0
mov edx, r12d
add rdx, qword [rdi + 0x50]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x18000c78c
add dword [rbp - 0x55], r12d
mov r12d, 0
je 0x18000c743
cmp r14d, r13d
ja 0x18000c743
mov ebx, r14d
cmp rbx, qword [rdi + 8]
jb 0x18000c653
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0xc000008c
call qword [sym.imp.KERNEL32.dll_RaiseException]
mov rcx, qword [rdi]
lea rax, [rbx + rbx*4]
lea rdx, [rcx + rax*4]
mov qword [rbp - 0x41], rdx
cmp r14d, r13d
jae 0x18000c696
lea ebx, [r14 + 1]
cmp rbx, qword [rdi + 8]
jb 0x18000c68b
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0xc000008c
call qword [sym.imp.KERNEL32.dll_RaiseException]
lea rax, [rbx + rbx*4]
mov eax, dword [rcx + rax*4]
sub eax, dword [rdx]
jmp 0x18000c699
mov eax, dword [rdx + 0xc]
mov ebx, dword [rbp - 0x55]
sub ebx, r12d
mov dword [rbp - 0x51], eax
cmp eax, ebx
ja 0x18000c725
mov ecx, dword [rdx + 8]
mov r11, qword [rdi + 0x20]
mov r8d, dword [rdx + 0xc]
mov rax, qword [rdi + 0x40]
mov ebx, dword [rbp - 0x59]
mov r10, qword [r11]
mov qword [rsp + 0x20], rcx
mov rcx, r11
mov edx, r12d
add rdx, qword [rdi + 0x50]
lea r9, [rax + rbx*2]
call qword [r10 + 0x18]
mov rax, qword [rdi + 0x40]
xor r9d, r9d
mov rcx, qword [rbp - 0x21]
and qword [rsp + 0x20], 0
lea rdx, [rax + rbx*2]
mov rbx, qword [rbp - 0x41]
mov r8d, dword [rbx + 8]
call qword [sym.imp.USER32.dll_GetTabbedTextExtentW]
movzx ecx, ax
cmp dword [rbp - 0x39], ecx
cmovge ecx, dword [rbp - 0x39]
add r14d, r15d
add r12d, dword [rbp - 0x51]
mov eax, ecx
mov dword [rbp - 0x39], ecx
mov ecx, dword [rbp - 0x59]
mov dword [rbx + 4], ecx
add ecx, dword [rbx + 8]
mov dword [rbp - 0x59], ecx
cmp r14d, r13d
jbe 0x18000c637
mov dword [rbp - 0x39], eax
jmp 0x18000c73a
mov rcx, qword [rdi + 0x50]
mov edx, r12d
add rdx, rcx
mov r8d, ebx
call fcn.180025930
mov r12d, ebx
cmp r14d, r13d
jbe 0x18000c5f0
mov eax, dword [rbp - 0x35]
mov dword [rdi + 0x3c], eax
mov eax, dword [rbp - 0x39]
add eax, dword [rbp - 0x31]
mov dword [rdi + 0x38], esi
cmp dword [rdi + 0x5c], eax
jge 0x18000c790
and qword [rbp - 9], 0
lea r8, [rbp - 0x19]
and dword [rbp - 1], 0
mov r9d, r15d
and dword [rbp - 0x11], 0
xor edx, edx
mov rcx, qword [rdi + 0x28]
mov dword [rdi + 0x5c], eax
dec eax
mov dword [rbp - 0xd], eax
mov dword [rbp - 0x19], 0x1c
mov dword [rbp - 0x15], r15d
call qword [sym.imp.USER32.dll_SetScrollInfo]
jmp 0x18000c793
xor eax, eax
jmp 0x18000c796
xor r15d, r15d
mov eax, r15d
mov rcx, qword [rbp + 7]
xor rcx, rsp
call fcn.180021cb0
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret