Function at 0x140003330
Capabilities:
Read file on windows

Disassembly:
push rbp
push rdi
push r13
lea rbp, [rsp - 0x47]
sub rsp, 0xf0
xor r13d, r13d
call fcn.140004090
call fcn.140003030
call fcn.1400030b0
mov rcx, qword [0x14028ece0]
test rcx, rcx
je 0x140003372
lea r8, [0x14028eae0]
lea rdx, str.Open_library_database_index_file:__s_n
call fcn.140002f70
mov qword [rsp + 0xe8], rbx
lea rdx, [0x1401f5c30]
mov qword [rsp + 0xe0], rsi
lea rcx, [0x14028eae0]
mov qword [rsp + 0xd8], r12
mov qword [rsp + 0xd0], r14
mov qword [rsp + 0xc8], r15
call fcn.1401c4c08
mov rdi, rax
test rax, rax
jne 0x1400033db
mov rcx, qword [0x14028ece0]
test rcx, rcx
je 0x1400033d4
lea r8, [0x14028eae0]
lea rdx, str._nCannot_open_library_database_index_file:__s_n
call fcn.140002f70
xor eax, eax
jmp 0x140003cf1
mov edx, 1
lea rcx, [rbp - 0x69]
mov r9, rdi
lea r8d, [rdx + 0x3f]
call fcn.1401c4e74
mov edx, 4
cmp rax, 0x40
mov ecx, 0x259
mov ebx, r13d
cmovb ebx, ecx
mov r9, rdi
lea rcx, [rbp + 0x67]
lea r8d, [rdx - 3]
call fcn.1401c4e74
cmp rax, 1
jae 0x14000342c
mov rcx, rdi
mov ebx, 0x25a
call fcn.1401c4978
jmp 0x140003cbe
test ebx, ebx
jne 0x140003cb2
mov r8d, dword [rbp + 0x67]
mov dword [0x14029c1a0], r8d
cmp r8d, 0x8c
je 0x140003493
mov rcx, qword [0x14028ece0]
test rcx, rcx
je 0x14000346e
mov r9d, r8d
lea rdx, str._nERROR:_index_file:__s_n_______Not_supported_file_format_version_d_n
lea r8, [0x14028eae0]
call fcn.140002f70
mov r8d, dword [rbp + 0x67]
lea rdx, [0x14028eae0]
mov ebx, 0x385
lea rcx, str.Index_file:__s_nNot_supported_file_format_version_d_n_nContact_Penzar_Development_support
call fcn.1400051f0
mov rcx, rdi
call fcn.1401c4978
jmp 0x140003cbe
mov edx, 4
lea rcx, [rbp + 0x7f]
mov r9, rdi
lea r8d, [rdx - 3]
call fcn.1401c4e74
mov edx, 4
cmp rax, 1
mov ecx, 0x25c
mov r9, rdi
cmovb ebx, ecx
lea rcx, [rbp + 0x77]
lea r8d, [rdx - 3]
call fcn.1401c4e74
cmp rax, 1
jae 0x1400034e1
mov rcx, rdi
mov ebx, 0x25d
call fcn.1401c4978
jmp 0x140003cbe
test ebx, ebx
jne 0x140003cb2
mov r12d, dword [rbp + 0x77]
lea rdx, [0x1401f5c30]
mov r15d, dword [rbp + 0x7f]
lea rcx, [0x14028e8e0]
call fcn.1401c4c08
mov rsi, rax
test rax, rax
jne 0x140003534
mov rcx, qword [0x14028ece0]
test rcx, rcx
je 0x140003667
lea r8, [0x14028e8e0]
lea rdx, str._nCannot_open_library_database_file:__s_n
call fcn.140002f70
jmp 0x140003667
mov edx, 1
lea rcx, [rbp - 0x29]
mov r9, rsi
lea r8d, [rdx + 0x3f]
call fcn.1401c4e74
mov edx, 4
lea rcx, [rsp + 0x20]
cmp rax, 0x40
mov r14d, 1
mov r9, rsi
cmovb r14d, r13d
lea r8d, [rdx - 3]
call fcn.1401c4e74
cmp rax, 1
jb 0x14000365f
test r14d, r14d
je 0x140003655
mov eax, dword [0x14029c1a0]
cmp dword [rsp + 0x20], eax
jne 0x140003601
mov edx, 4
lea rcx, [rsp + 0x24]
mov r9, rsi
lea r8d, [rdx - 3]
call fcn.1401c4e74
cmp rax, 1
jb 0x14000365f
mov eax, dword [rsp + 0x24]
lea rcx, [rsp + 0x28]
mov edx, 4
mov dword [0x14029c1a4], eax
mov r9, rsi
lea r8d, [rdx - 3]
call fcn.1401c4e74
mov edx, 4
lea rcx, [rbp - 0x7d]
cmp rax, 1
mov r9, rsi
cmovb r14d, r13d
lea r8d, [rdx - 3]
call fcn.1401c4e74
cmp rax, 1
jb 0x14000365f
test r14d, r14d
je 0x140003655
cmp dword [rsp + 0x28], r15d
jne 0x140003601
cmp dword [rbp - 0x7d], r12d
je 0x140003655
mov rcx, rsi
mov ebx, 0xffffffff
call fcn.1401c4978
mov rcx, qword [0x14028ece0]
mov dword [rbp + 0x6f], ebx
test rcx, rcx
je 0x140003630
lea r8, [0x14028e8e0]
lea rdx, str.ERROR:_index_does_not_match_library_database_file:__s_n
call fcn.140002f70
lea rdx, [0x14028e8e0]
lea rcx, str.Index_and_database_files_dont_match_for_library:_n_s_n_nContact_Penzar_Development_support
call fcn.1400051f0
mov rcx, rdi
mov ebx, 0x262
call fcn.1401c4978
jmp 0x140003cbe
mov rcx, rsi
call fcn.1401c4978
jmp 0x14000366a
mov rcx, rsi
call fcn.1401c4978
mov r14d, r13d
mov edx, 1
mov dword [rbp + 0x6f], r14d
mov r9, rdi
lea rcx, [0x14028ecf0]
lea r8d, [rdx + 0x3f]
call fcn.1401c4e74
cmp rax, 1
mov ecx, 0x20f
mov r9, rdi
mov edx, 1
cmovb ebx, ecx
mov r8d, 0x100
lea rcx, [0x14028ed30]
call fcn.1401c4e74
mov edx, 4
cmp rax, 1
mov ecx, 0x210
mov r9, rdi
cmovb ebx, ecx
lea rcx, [0x14029c1a8]
lea r8d, [rdx - 3]
call fcn.1401c4e74
cmp rax, 1
jae 0x1400036e8
mov rcx, rdi
mov ebx, 0x211
call fcn.1401c4978
jmp 0x140003cbe
test ebx, ebx
jne 0x140003cb2
mov r9, rdi
lea edx, [rbx + 4]
lea r8d, [rbx + 1]
lea rcx, [rbp + 0x6f]
call fcn.1401c4e74
cmp rax, 1
jae 0x14000371b
mov rcx, rdi
mov ebx, 0x212
call fcn.1401c4978
jmp 0x140003cbe
lea r15, [0x14029c1a0]
mov dword [rbp + 0x67], r13d
cmp dword [rbp + 0x6f], r13d
jle 0x140003779
mov eax, r13d
mov esi, 0x213
nop dword [rax]
nop dword [rax + rax]
cdqe
mov edx, 4
add rax, 0x2dc70
mov r9, rdi
lea r8d, [rdx - 3]
lea rcx, [r15 + rax*4]
call fcn.1401c4e74
cmp rax, 1
mov eax, dword [rbp + 0x67]
cmovb ebx, esi
inc eax
mov dword [rbp + 0x67], eax
cmp eax, dword [rbp + 0x6f]
jl 0x140003740
test ebx, ebx
jne 0x140003cb2
mov eax, dword [0x14029c1a8]
test eax, eax
jg 0x1400037b0
mov rcx, qword [0x14028ece0]
test rcx, rcx
je 0x14000379e
lea rdx, str._nERROR:_Index_file_saved_count:__d_n
mov r8d, eax
call fcn.140002f70
mov rcx, rdi
mov ebx, 0x259
call fcn.1401c4978
jmp 0x140003cbe
cmp eax, 0x9c4
jle 0x1400037cc
mov rcx, qword [0x14028ece0]
test rcx, rcx
je 0x14000379e
lea rdx, str._nERROR:_Index_file_saved_count_too_large:__d_n
jmp 0x140003796
mov dword [0x14029c1ac], eax
mov dword [rbp + 0x67], r13d
test eax, eax
jle 0x140003cb2
mov esi, 0x21e
lea r12, [0x14029c208]
lea r13, [0x14029c228]
lea r14d, [rsi + 1]
nop word [rax + rax]
mov edx, 4
lea rcx, [rbp + 0x6f]
mov r9, rdi
lea r8d, [rdx - 3]
call fcn.1401c4e74
cmp rax, 1
mov edx, 4
mov eax, 0x21c
mov r9, rdi
cmovb ebx, eax
movsxd rax, dword [rbp + 0x67]
imul rcx, rax, 0x128
mov eax, dword [rbp + 0x6f]
lea r8d, [rdx - 3]
mov dword [rcx + r15 + 0x10], eax
lea rcx, [rbp + 0x6f]
call fcn.1401c4e74
cmp rax, 1
mov edx, 4
mov eax, 0x21c
mov r9, rdi
cmovb ebx, eax
movsxd rax, dword [rbp + 0x67]
imul rcx, rax, 0x128
mov eax, dword [rbp + 0x6f]
lea r8d, [rdx - 3]
mov dword [rcx + r15 + 0x14], eax
lea rcx, [rbp + 0x6f]
call fcn.1401c4e74
cmp rax, 1
mov edx, 4
mov eax, 0x21c
mov r9, rdi
cmovb ebx, eax
movsxd rax, dword [rbp + 0x67]
imul rcx, rax, 0x128
mov eax, dword [rbp + 0x6f]
lea r8d, [rdx - 3]
mov dword [rcx + r15 + 0x12c], eax
lea rcx, [rbp + 0x6f]
call fcn.1401c4e74
cmp rax, 1
mov edx, reloc.OLEAUT32.dll_SafeArrayGetDim
mov eax, 0x21c
mov r9, rdi
cmovb ebx, eax
movsxd rax, dword [rbp + 0x67]
imul rcx, rax, 0x128
mov eax, dword [rbp + 0x6f]
lea r8d, [rdx - 0xf]
mov dword [rcx + r15 + 0x128], eax
add rcx, 0x18
add rcx, r15
call fcn.1401c4e74
cmp rax, 1
mov edx, 0x40
mov eax, 0x21c
mov r9, rdi
cmovb ebx, eax
movsxd rax, dword [rbp + 0x67]
imul rcx, rax, 0x128
lea rax, [0x14029c1c8]
add rcx, rax
lea r8d, [rdx - 0x3f]
call fcn.1401c4e74
cmp rax, 1
mov edx, 0x20
mov eax, 0x21c
mov r9, rdi
cmovb ebx, eax
movsxd rax, dword [rbp + 0x67]
imul rcx, rax, 0x128
lea r8d, [rdx - 0x1f]
add rcx, r12
call fcn.1401c4e74
cmp rax, 1
mov eax, 0x21c
cmovb ebx, eax
movsxd rax, dword [rbp + 0x67]
imul rcx, rax, 0x128
add rcx, r13
mov edx, 0x20
mov r9, rdi
lea r8d, [rdx - 0x1f]
call fcn.1401c4e74
cmp rax, 1
mov edx, 0x20
mov eax, 0x21c
mov r9, rdi
cmovb ebx, eax
movsxd rax, dword [rbp + 0x67]
imul rcx, rax, 0x128
lea rax, [0x14029c248]
add rcx, rax
lea r8d, [rdx - 0x1f]
call fcn.1401c4e74
cmp rax, 1
mov edx, 0x20
mov eax, 0x21c
mov r9, rdi
cmovb ebx, eax
movsxd rax, dword [rbp + 0x67]
imul rcx, rax, 0x128
lea rax, [0x14029c268]
add rcx, rax
lea r8d, [rdx - 0x1f]
call fcn.1401c4e74
cmp rax, 1
mov edx, 0x40
mov eax, 0x21c
mov r9, rdi
cmovb ebx, eax
movsxd rax, dword [rbp + 0x67]
imul rcx, rax, 0x128
lea rax, [0x14029c288]
add rcx, rax
lea r8d, [rdx - 0x3f]
call fcn.1401c4e74
cmp rax, 1
lea rcx, [rbp - 0x79]
mov edx, 4
mov eax, 0x21c
mov r9, rdi
cmovb ebx, eax
lea r8d, [rdx - 3]
call fcn.1401c4e74
mov edx, dword [rbp - 0x79]
cmp rax, 1
mov eax, 0x21c
mov r9, rdi
cmovb ebx, eax
movsxd rax, dword [rbp + 0x67]
imul rcx, rax, 0x128
mov qword [rcx + r15 + 0x130], rdx
mov edx, 4
lea rcx, [rbp + 0x6f]
lea r8d, [rdx - 3]
call fcn.1401c4e74
movsxd r10, dword [rbp + 0x6f]
cmp rax, 1
mov eax, 0x21d
cmovb ebx, eax
movsxd rax, dword [rbp + 0x67]
imul r11, rax, 0x128
lea rax, [0x14029c1c8]
add r11, rax
cmp r10d, 2
jl 0x140003acb
mov eax, r10d
cdq
sub eax, edx
sar eax, 1
movsxd r9, eax
test eax, eax
jle 0x140003acb
lea eax, [r10 - 1]
mov r8, r11
movsxd rdx, eax
add rdx, r11
nop dword [rax + rax]
movzx eax, byte [rdx]
lea rdx, [rdx - 1]
movzx ecx, byte [r8]
mov byte [r8], al
lea r8, [r8 + 1]
mov byte [rdx + 1], cl
sub r9, 1
jne 0x140003ab0
mov edx, 4
mov byte [r10 + r11], 0
mov r9, rdi
lea rcx, [rbp + 0x6f]
lea r8d, [rdx - 3]
call fcn.1401c4e74
movsxd r11, dword [rbp + 0x6f]
cmp rax, 1
movsxd rax, dword [rbp + 0x67]
cmovb ebx, esi
imul r10, rax, 0x128
add r10, r12
cmp r11d, 2
jl 0x140003b3b
mov eax, r11d
cdq
sub eax, edx
sar eax, 1
movsxd r9, eax
test eax, eax
jle 0x140003b3b
lea eax, [r11 - 1]
mov r8, r10
movsxd rdx, eax
add rdx, r10
movzx eax, byte [rdx]
lea rdx, [rdx - 1]
movzx ecx, byte [r8]
mov byte [r8], al
lea r8, [r8 + 1]
mov byte [rdx + 1], cl
sub r9, 1
jne 0x140003b20
mov edx, 4
mov byte [r11 + r10], 0
mov r9, rdi
lea rcx, [rbp + 0x6f]
lea r8d, [rdx - 3]
call fcn.1401c4e74
movsxd r11, dword [rbp + 0x6f]
cmp rax, 1
movsxd rax, dword [rbp + 0x67]
cmovb ebx, r14d
imul r10, rax, 0x128
add r10, r13
cmp r11d, 2
jl 0x140003bac
mov eax, r11d
cdq
sub eax, edx
sar eax, 1
movsxd r9, eax
test eax, eax
jle 0x140003bac
lea eax, [r11 - 1]
mov r8, r10
movsxd rdx, eax
add rdx, r10
movzx eax, byte [rdx]
lea rdx, [rdx - 1]
movzx ecx, byte [r8]
mov byte [r8], al
lea r8, [r8 + 1]
mov byte [rdx + 1], cl
sub r9, 1
jne 0x140003b91
mov edx, 4
mov byte [r11 + r10], 0
mov r9, rdi
lea rcx, [rbp + 0x6f]
lea r8d, [rdx - 3]
call fcn.1401c4e74
movsxd r10, dword [rbp + 0x67]
lea r14, [r15 + 0xe8]
movsxd r11, dword [rbp + 0x6f]
cmp rax, 1
mov eax, 0x220
cmovb ebx, eax
imul rsi, r10, 0x128
add r14, rsi
cmp r11d, 2
jl 0x140003c2b
mov eax, r11d
cdq
sub eax, edx
sar eax, 1
movsxd r9, eax
test eax, eax
jle 0x140003c2b
lea eax, [r11 - 1]
mov r8, r14
movsxd rdx, eax
add rdx, r14
nop dword [rax]
movzx eax, byte [rdx]
lea rdx, [rdx - 1]
movzx ecx, byte [r8]
mov byte [r8], al
lea r8, [r8 + 1]
mov byte [rdx + 1], cl
sub r9, 1
jne 0x140003c10
mov byte [r11 + r14], 0
lea rdx, [rsi + r15]
mov rax, 0xffffffffffffffff
nop dword [rax + rax]
inc rax
cmp byte [rdx + rax + 0x68], 0
jne 0x140003c40
test rax, rax
jne 0x140003c6f
lea rax, [r15 + 0x28]
add rax, rsi
lea r8, [rdx + 0x68]
sub r8, rax
nop dword [rax]
movzx ecx, byte [rax]
mov byte [rax + r8], cl
lea rax, [rax + 1]
test cl, cl
jne 0x140003c60
cmp dword [rsi + r15 + 0x10], 0
jne 0x140003c95
mov eax, dword [str.NOLIST]
mov dword [rdx + 0x68], eax
movzx eax, word [0x1401f622c]
mov word [rdx + 0x6c], ax
movzx eax, byte [0x1401f622e]
mov byte [rdx + 0x6e], al
inc r10d
mov esi, 0x21e
cmp r10d, dword [0x14029c1a8]
mov dword [rbp + 0x67], r10d
lea r14d, [rsi + 1]
jl 0x140003800
mov rcx, rdi
call fcn.1401c4978
test ebx, ebx
je 0x140003cec
mov rcx, qword [0x14028ece0]
test rcx, rcx
je 0x140003cd9
mov r8d, ebx
lea rdx, str.ERROR:_reading_indexed_library_file._Error_code_d_n
call fcn.140002f70
cmp ebx, 0x385
jne 0x1400033d4
mov eax, 0xffffffff
jmp 0x140003cf1
mov eax, 1
mov r15, qword [rsp + 0xc8]
mov r14, qword [rsp + 0xd0]
mov r12, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0xe0]
mov rbx, qword [rsp + 0xe8]
add rsp, 0xf0
pop r13
pop rdi
pop rbp
ret