Function at 0x463e6e
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x54
mov dword [ebp - 0x44], 0
cmp dword [0x4cf1f0], 0xffffffff
jne 0x463e8a
call fcn.00462a5f
push dword [ebp + 8]
call fcn.00461db0
add esp, 4
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x3c], 0
jne 0x463f7f
sub esp, 4
push 0
mov edx, dword [ebp + 8]
mov eax, edx
shl eax, 2
add eax, edx
shl eax, 3
push eax
push dword [0x4cf1f0]
call sub.msvcrt.dll__lseek
add esp, 0x10
cmp eax, 0xffffffff
jne 0x463f06
sub esp, 8
sub esp, 4
sub esp, 4
call sub.msvcrt.dll__errno
add esp, 4
push dword [eax]
call sub.msvcrt.dll_strerror
add esp, 8
push eax
push str.trustdb:_lseek_failed:__s_n
call fcn.004a7e84
add esp, 4
push eax
call fcn.0049d87b
add esp, 0x10
mov dword [ebp - 0x50], 0x15
jmp 0x46458d
sub esp, 4
push 0x28
lea eax, [ebp - 0x38]
push eax
push dword [0x4cf1f0]
call sub.msvcrt.dll__read
add esp, 0x10
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0
jne 0x463f32
mov dword [ebp - 0x50], 0xffffffff
jmp 0x46458d
cmp dword [ebp - 0x48], 0x28
je 0x463f79
sub esp, 4
sub esp, 8
sub esp, 4
call sub.msvcrt.dll__errno
add esp, 4
push dword [eax]
call sub.msvcrt.dll_strerror
add esp, 0xc
push eax
push dword [ebp - 0x48]
push str.trustdb:_read_failed__n_d_:__s_n
call fcn.004a7e84
add esp, 4
push eax
call fcn.0049d87b
add esp, 0x10
mov dword [ebp - 0x50], 0x15
jmp 0x46458d
lea eax, [ebp - 0x38]
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov dword [edx + 0x10], eax
mov eax, dword [ebp + 0xc]
mov dword [eax + 8], 0
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x40], eax
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x40]
mov al, byte [eax]
and eax, 0xff
mov dword [edx], eax
lea eax, [ebp - 0x40]
inc dword [eax]
cmp dword [ebp + 0x10], 0
je 0x463fe0
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
cmp eax, dword [ebp + 0x10]
je 0x463fe0
mov eax, dword [ebp + 0xc]
push dword [eax]
push dword [ebp + 0x10]
push dword [ebp + 8]
push str._lu:_read_expected_rec_type__d__got__d_n
call fcn.0049d87b
add esp, 0x10
mov dword [ebp - 0x50], 0x21
jmp 0x46458d
lea eax, [ebp - 0x40]
inc dword [eax]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0xb
je 0x464367
cmp dword [ebp - 0x54], 0xb
jg 0x464027
cmp dword [ebp - 0x54], 1
je 0x46404d
cmp dword [ebp - 0x54], 1
jg 0x464018
cmp dword [ebp - 0x54], 0
je 0x464587
jmp 0x464565
cmp dword [ebp - 0x54], 0xa
je 0x4642ff
jmp 0x464565
cmp dword [ebp - 0x54], 0xd
je 0x4644c4
cmp dword [ebp - 0x54], 0xd
jl 0x46441b
cmp dword [ebp - 0x54], 0xfe
je 0x4642ae
jmp 0x464565
mov eax, dword [ebp - 0x3c]
inc eax
sub esp, 4
push 3
push 0x4e9358
push eax
call sub.msvcrt.dll_memcmp
add esp, 0x10
test eax, eax
je 0x46408e
sub esp, 8
push dword [0x4fd060]
push str._s:_not_a_trustdb_file_n
call fcn.004a7e84
add esp, 4
push eax
call fcn.0049d87b
add esp, 0x10
mov dword [ebp - 0x44], 0x21
lea eax, [ebp - 0x40]
add dword [eax], 2
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x40]
mov edx, eax
lea eax, [ebp - 0x40]
inc dword [eax]
mov al, byte [edx]
mov byte [ecx + 0x14], al
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x40]
mov edx, eax
lea eax, [ebp - 0x40]
inc dword [eax]
mov al, byte [edx]
mov byte [ecx + 0x15], al
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x40]
mov edx, eax
lea eax, [ebp - 0x40]
inc dword [eax]
mov al, byte [edx]
mov byte [ecx + 0x16], al
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x40]
mov edx, eax
lea eax, [ebp - 0x40]
inc dword [eax]
mov al, byte [edx]
mov byte [ecx + 0x17], al
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x40]
mov edx, eax
lea eax, [ebp - 0x40]
inc dword [eax]
mov al, byte [edx]
mov byte [ecx + 0x18], al
lea eax, [ebp - 0x40]
add dword [eax], 3
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x40]
mov al, byte [eax]
and eax, 0xff
mov edx, eax
shl edx, 0x18
mov eax, dword [ebp - 0x40]
inc eax
mov al, byte [eax]
and eax, 0xff
shl eax, 0x10
or edx, eax
mov eax, dword [ebp - 0x40]
add eax, 2
mov al, byte [eax]
and eax, 0xff
shl eax, 8
or edx, eax
mov eax, dword [ebp - 0x40]
add eax, 3
mov al, byte [eax]
and eax, 0xff
or eax, edx
mov dword [ecx + 0x1c], eax
lea eax, [ebp - 0x40]
add dword [eax], 4
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x40]
mov al, byte [eax]
and eax, 0xff
mov edx, eax
shl edx, 0x18
mov eax, dword [ebp - 0x40]
inc eax
mov al, byte [eax]
and eax, 0xff
shl eax, 0x10
or edx, eax
mov eax, dword [ebp - 0x40]
add eax, 2
mov al, byte [eax]
and eax, 0xff
shl eax, 8
or edx, eax
mov eax, dword [ebp - 0x40]
add eax, 3
mov al, byte [eax]
and eax, 0xff
or eax, edx
mov dword [ecx + 0x20], eax
lea eax, [ebp - 0x40]
add dword [eax], 4
lea eax, [ebp - 0x40]
add dword [eax], 4
lea eax, [ebp - 0x40]
add dword [eax], 4
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x40]
mov al, byte [eax]
and eax, 0xff
mov edx, eax
shl edx, 0x18
mov eax, dword [ebp - 0x40]
inc eax
mov al, byte [eax]
and eax, 0xff
shl eax, 0x10
or edx, eax
mov eax, dword [ebp - 0x40]
add eax, 2
mov al, byte [eax]
and eax, 0xff
shl eax, 8
or edx, eax
mov eax, dword [ebp - 0x40]
add eax, 3
mov al, byte [eax]
and eax, 0xff
or eax, edx
mov dword [ecx + 0x2c], eax
lea eax, [ebp - 0x40]
add dword [eax], 4
lea eax, [ebp - 0x40]
add dword [eax], 4
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x40]
mov al, byte [eax]
and eax, 0xff
mov edx, eax
shl edx, 0x18
mov eax, dword [ebp - 0x40]
inc eax
mov al, byte [eax]
and eax, 0xff
shl eax, 0x10
or edx, eax
mov eax, dword [ebp - 0x40]
add eax, 2
mov al, byte [eax]
and eax, 0xff
shl eax, 8
or edx, eax
mov eax, dword [ebp - 0x40]
add eax, 3
mov al, byte [eax]
and eax, 0xff
or eax, edx
mov dword [ecx + 0x34], eax
lea eax, [ebp - 0x40]
add dword [eax], 4
cmp dword [ebp + 8], 0
je 0x46426a
sub esp, 4
push dword [ebp + 8]
push dword [0x4fd060]
push str._s:_version_record_with_recnum__lu_n
call fcn.004a7e84
add esp, 4
push eax
call fcn.0049d87b
add esp, 0x10
mov dword [ebp - 0x44], 0x21
jmp 0x464587
mov eax, dword [ebp + 0xc]
cmp byte [eax + 0x14], 3
je 0x464587
sub esp, 4
mov eax, dword [ebp + 0xc]
mov al, byte [eax + 0x14]
and eax, 0xff
push eax
push dword [0x4fd060]
push str._s:_invalid_file_version__d_n
call fcn.004a7e84
add esp, 4
push eax
call fcn.0049d87b
add esp, 0x10
mov dword [ebp - 0x44], 0x21
jmp 0x464587
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x40]
mov al, byte [eax]
and eax, 0xff
mov edx, eax
shl edx, 0x18
mov eax, dword [ebp - 0x40]
inc eax
mov al, byte [eax]
and eax, 0xff
shl eax, 0x10
or edx, eax
mov eax, dword [ebp - 0x40]
add eax, 2
mov al, byte [eax]
and eax, 0xff
shl eax, 8
or edx, eax
mov eax, dword [ebp - 0x40]
add eax, 3
mov al, byte [eax]
and eax, 0xff
or eax, edx
mov dword [ecx + 0x14], eax
lea eax, [ebp - 0x40]
add dword [eax], 4
jmp 0x464587
mov dword [ebp - 0x4c], 0
cmp dword [ebp - 0x4c], 8
jg 0x464587
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x40]
mov al, byte [eax]
and eax, 0xff
mov edx, eax
shl edx, 0x18
mov eax, dword [ebp - 0x40]
inc eax
mov al, byte [eax]
and eax, 0xff
shl eax, 0x10
or edx, eax
mov eax, dword [ebp - 0x40]
add eax, 2
mov al, byte [eax]
and eax, 0xff
shl eax, 8
or edx, eax
mov eax, dword [ebp - 0x40]
add eax, 3
mov al, byte [eax]
and eax, 0xff
or eax, edx
mov dword [ecx + ebx*4 + 0x14], eax
lea eax, [ebp - 0x40]
add dword [eax], 4
lea eax, [ebp - 0x4c]
inc dword [eax]
jmp 0x464306
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x40]
mov al, byte [eax]
and eax, 0xff
mov edx, eax
shl edx, 0x18
mov eax, dword [ebp - 0x40]
inc eax
mov al, byte [eax]
and eax, 0xff
shl eax, 0x10
or edx, eax
mov eax, dword [ebp - 0x40]
add eax, 2
mov al, byte [eax]
and eax, 0xff
shl eax, 8
or edx, eax
mov eax, dword [ebp - 0x40]
add eax, 3
mov al, byte [eax]
and eax, 0xff
or eax, edx
mov dword [ecx + 0x14], eax
lea eax, [ebp - 0x40]
add dword [eax], 4
mov dword [ebp - 0x4c], 0
cmp dword [ebp - 0x4c], 5
jg 0x464587
mov ecx, dword [ebp + 0xc]
mov ebx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x40]
mov al, byte [eax]
and eax, 0xff
mov edx, eax
shl edx, 0x18
mov eax, dword [ebp - 0x40]
inc eax
mov al, byte [eax]
and eax, 0xff
shl eax, 0x10
or edx, eax
mov eax, dword [ebp - 0x40]
add eax, 2
mov al, byte [eax]
and eax, 0xff
shl eax, 8
or edx, eax
mov eax, dword [ebp - 0x40]
add eax, 3
mov al, byte [eax]
and eax, 0xff
or eax, edx
mov dword [ecx + ebx*4 + 0x18], eax
lea eax, [ebp - 0x40]
add dword [eax], 4
lea eax, [ebp - 0x4c]
inc dword [eax]
jmp 0x4643ba
sub esp, 4
push 0x14
push dword [ebp - 0x40]
mov eax, dword [ebp + 0xc]
add eax, 0x14
push eax
call sub.msvcrt.dll_memcpy
add esp, 0x10
lea eax, [ebp - 0x40]
add dword [eax], 0x14
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x40]
mov edx, eax
lea eax, [ebp - 0x40]
inc dword [eax]
mov al, byte [edx]
mov byte [ecx + 0x28], al
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x40]
mov edx, eax
lea eax, [ebp - 0x40]
inc dword [eax]
mov al, byte [edx]
mov byte [ecx + 0x29], al
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x40]
mov edx, eax
lea eax, [ebp - 0x40]
inc dword [eax]
mov al, byte [edx]
mov byte [ecx + 0x30], al
lea eax, [ebp - 0x40]
inc dword [eax]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x40]
mov al, byte [eax]
and eax, 0xff
mov edx, eax
shl edx, 0x18
mov eax, dword [ebp - 0x40]
inc eax
mov al, byte [eax]
and eax, 0xff
shl eax, 0x10
or edx, eax
mov eax, dword [ebp - 0x40]
add eax, 2
mov al, byte [eax]
and eax, 0xff
shl eax, 8
or edx, eax
mov eax, dword [ebp - 0x40]
add eax, 3
mov al, byte [eax]
and eax, 0xff
or eax, edx
mov dword [ecx + 0x2c], eax
lea eax, [ebp - 0x40]
add dword [eax], 4
jmp 0x464587
sub esp, 4
push 0x14
push dword [ebp - 0x40]
mov eax, dword [ebp + 0xc]
add eax, 0x14
push eax
call sub.msvcrt.dll_memcpy
add esp, 0x10
lea eax, [ebp - 0x40]
add dword [eax], 0x14
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x40]
mov edx, eax
lea eax, [ebp - 0x40]
inc dword [eax]
mov al, byte [edx]
mov byte [ecx + 0x2c], al
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x40]
mov al, byte [eax]
and eax, 0xff
mov edx, eax
shl edx, 0x18
mov eax, dword [ebp - 0x40]
inc eax
mov al, byte [eax]
and eax, 0xff
shl eax, 0x10
or edx, eax
mov eax, dword [ebp - 0x40]
add eax, 2
mov al, byte [eax]
and eax, 0xff
shl eax, 8
or edx, eax
mov eax, dword [ebp - 0x40]
add eax, 3
mov al, byte [eax]
and eax, 0xff
or eax, edx
mov dword [ecx + 0x28], eax
lea eax, [ebp - 0x40]
add dword [eax], 4
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x40]
mov edx, eax
lea eax, [ebp - 0x40]
inc dword [eax]
mov al, byte [edx]
mov byte [ecx + 0x2d], al
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0x40]
mov edx, eax
lea eax, [ebp - 0x40]
inc dword [eax]
mov al, byte [edx]
mov byte [ecx + 0x2e], al
jmp 0x464587
push dword [ebp + 8]
mov eax, dword [ebp + 0xc]
push dword [eax]
push dword [0x4fd060]
push str._s:_invalid_record_type__d_at_recnum__lu_n
call fcn.0049d87b
add esp, 0x10
mov dword [ebp - 0x44], 0x21
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
mov ebx, dword [ebp - 4]
leave
ret