Function at 0x464300
Capabilities:
Get file size
Read file on windows

Disassembly:
sub esp, 0x2c4
push ebx
mov ebx, dword [esp + 0x2d0]
push ebp
push esi
xor esi, esi
mov dword [esp + 0x1c], 0x4a0bc0
push esi
push 0xffffffffffffffff
push 0x100c
push ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x30], str..fds
mov dword [esp + 0x34], str..fam
mov dword [esp + 0x38], str..nsf
mov dword [esp + 0x3c], esi
call dword [sym.imp.USER32.dll_SendMessageA]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x464755
push edi
jmp 0x46435b
mov esi, dword [esp + 0x1c]
mov eax, dword [0x4a3a10]
lea edx, [esp + 0x5c]
push edx
push ebp
mov edi, 0x104
lea ecx, [esp + 0xd4]
push 0x102d
push ebx
mov dword [esp + 0x74], eax
mov dword [esp + 0x84], edi
mov dword [esp + 0x80], ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [0x520468]
lea ecx, [esp + 0xac]
push eax
push esi
push str.__u____u__File_Scan_...
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [esp + 0x2e8]
add esp, 0x10
lea edx, [esp + 0xac]
push edx
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
lea ecx, [esp + 0xcc]
inc esi
push ecx
mov dword [esp + 0x20], esi
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionA]
mov esi, eax
push 0x4a28ac
inc esi
mov dword [esp + 0x14], 0
push esi
call fcn.0045c4a0
add esp, 8
test eax, eax
jne 0x4644a2
push 0x4a3ab8
push esi
call fcn.0045c4a0
add esp, 8
test eax, eax
jne 0x4644a2
mov edx, dword [0x4a3a14]
lea ecx, [esp + 0x84]
push ecx
push ebp
lea eax, [esp + 0x1d8]
push 0x102d
push ebx
mov dword [esp + 0x9c], edx
mov dword [esp + 0xac], edi
mov dword [esp + 0xa8], eax
call dword [sym.imp.USER32.dll_SendMessageA]
lea edx, [esp + 0xcc]
lea eax, [esp + 0x1d0]
push edx
lea ecx, [esp + 0x1d4]
push eax
push ecx
call dword [sym.imp.SHLWAPI.dll_PathCombineA]
lea edx, [esp + 0x20]
lea eax, [esp + 0x14]
push edx
lea ecx, [esp + 0x1d4]
push eax
mov eax, dword [esp + 0x2e0]
lea edx, [esp + 0x18]
push ecx
push edx
push eax
call fcn.004526a0
add esp, 0x14
test eax, eax
je 0x46473a
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x46455f
jmp 0x46473a
mov ecx, dword [0x4a3a14]
lea eax, [esp + 0x34]
push eax
push ebp
lea edx, [esp + 0x1d8]
push 0x102d
push ebx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x5c], edi
mov dword [esp + 0x58], edx
call dword [sym.imp.USER32.dll_SendMessageA]
lea ecx, [esp + 0xcc]
lea edx, [esp + 0x1d0]
push ecx
lea eax, [esp + 0x1d4]
push edx
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineA]
push 0
push 0x80
push 3
push 0
push 1
lea ecx, [esp + 0x1e4]
push bind
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x46473a
push 0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push eax
mov dword [esp + 0x18], eax
call fcn.0048ac32
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x464540
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x46473a
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x14]
push 0
push edx
push ecx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_ReadFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x10]
mov ecx, 3
mov edi, 0x4a0b54
mov esi, eax
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4646f8
push ebp
push eax
push ebx
call fcn.00464780
add esp, 0xc
test eax, eax
jne 0x46458d
mov eax, dword [esp + 0x10]
jmp 0x464729
mov ecx, dword [esp + 0x10]
xor edx, edx
xor eax, eax
mov dl, byte [ecx + 4]
mov al, byte [ecx + 5]
mov edi, edx
mov dl, byte [ecx + 6]
mov bl, dl
lea esi, [eax + edi*2]
and ebx, 4
shl esi, 6
add esi, ebx
mov ebx, dword [esp + 0x14]
shl esi, 7
add esi, 0x10
cmp ebx, esi
jae 0x4645cd
push ecx
call fcn.0048ace4
mov ebx, dword [esp + 0x2e0]
jmp 0x46472f
shl edi, 0xe
test dl, 4
lea esi, [edi + ecx + 0x10]
mov dword [esp + 0x18], esi
je 0x4645ef
mov edx, esi
add edi, 0x200
add edx, 0x200
mov dword [esp + 0x18], edx
shl eax, 0xd
add eax, edi
add ecx, 0x10
push eax
push ecx
call fcn.0045d8d0
mov ebx, dword [sym.imp.USER32.dll_wsprintfA]
push eax
lea eax, [esp + 0xd8]
push str._08x
push eax
call ebx
lea ecx, [ebp + ebp*8]
mov edx, dword [0x523ca0]
add esp, 0x14
lea eax, [esp + 0xcc]
lea esi, [ebp + ecx*4]
shl esi, 3
sub esi, ebp
shl esi, 2
lea ecx, [esi + edx + 0x22c]
mov dl, byte [eax]
inc eax
mov byte [ecx], dl
inc ecx
test dl, dl
jne 0x46463b
mov eax, dword [esp + 0x10]
push edi
add eax, 0x10
push eax
call fcn.0045d8d0
push eax
lea ecx, [esp + 0xd8]
push str._08x
push ecx
call ebx
mov edx, dword [0x523ca0]
add esp, 0x14
lea eax, [esp + 0xcc]
lea ecx, [esi + edx + 0x330]
mov dl, byte [eax]
inc eax
mov byte [ecx], dl
inc ecx
test dl, dl
jne 0x46467a
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
test byte [eax + 6], 4
je 0x4646a2
xor ecx, ecx
mov cl, byte [eax + 5]
shl ecx, 0xd
add ecx, 0x200
jmp 0x4646aa
xor ecx, ecx
mov cl, byte [eax + 5]
shl ecx, 0xd
push ecx
push edx
call fcn.0045d8d0
add esp, 8
push eax
lea eax, [esp + 0xd0]
push str._08x
push eax
call ebx
mov edx, dword [0x523ca0]
add esp, 0xc
lea ecx, [esp + 0xcc]
lea edx, [esi + edx + 0x350]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x4646db
mov eax, dword [esp + 0x10]
push eax
call fcn.0048ace4
mov ebx, dword [esp + 0x2e0]
jmp 0x46472f
mov ecx, 3
mov edi, 0x4a0b4c
mov esi, eax
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x464725
test eax, eax
je 0x46473a
push ebp
push eax
push ebx
call fcn.00466940
mov eax, dword [esp + 0x1c]
push eax
call fcn.0048ace4
add esp, 0x10
jmp 0x464732
test eax, eax
je 0x46473a
push eax
call fcn.0048ace4
add esp, 4
mov dword [esp + 0x10], 0
push 0
push ebp
push 0x100c
push ebx
call dword [sym.imp.USER32.dll_SendMessageA]
mov ebp, eax
cmp ebp, 0xffffffff
jne 0x464357
pop edi
mov ecx, dword [esp + 0x2d4]
push ecx
call fcn.00467ee0
add esp, 4
mov eax, 1
pop esi
pop ebp
pop ebx
add esp, 0x2c4
ret