Function at 0x454bdd
Capabilities:
Check if file exists
Get file size
Read file on windows

Disassembly:
push 0x98
mov eax, 0x5e39a4
call fcn.0046d2ba
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0xa0], eax
and dword [ebp - 4], 0
call fcn.00473811
test al, al
je 0x454c16
cmc
xor cl, 0xe
jmp 0x454c08
adc edx, edx
popal
mov byte [0x91eb989e], al
jp 0x454c21
push ebx
int 0xf0
call fcn.0047396a
call fcn.0047396a
test al, al
je 0x454c30
jge 0x454c73
or ebx, esp
sub al, dl
test dword [ebx + 0x3b998ade], 0x5de1d338
test eax, 0xe86583
and dword [ebp - 0x18], 0
lea ecx, [ebp - 0x28]
xor eax, eax
mov dword [ebp - 0x14], 7
push eax
push 0x5e87f0
mov word [ebp - 0x28], ax
call fcn.00402650
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 1
call fcn.0047e7d4
xor esi, esi
mov dword [ebp - 0x98], esi
call fcn.004736fd
test al, al
je 0x454c93
not dword [eax + 0x1f]
lodsd eax, dword [esi]
adc al, 0xd
cmp edx, dword [ebp + 7]
push ecx
adc edx, ebx
add dl, al
cmp bl, byte [eax - 0x75]
mov bl, 0x1a
clc
pop ss
add al, 0x7b
cmp dh, ah
fild word [esi + 0x5f]
push es
push esp
mov esi, dword [ebp - 0x98]
cmp dword [ebp + 0x1c], 8
lea eax, [ebp + 8]
cmovae eax, dword [ebp + 8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x454d6e
cmp dword [ebp + 0x1c], 8
lea eax, [ebp + 8]
push 0
cmovae eax, dword [ebp + 8]
push 0x80
push 4
push 0
push 1
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
mov dword [ebp - 0x9c], edi
cmp edi, 0xffffffff
je 0x454d6c
call fcn.004737cc
test al, al
je 0x454d01
outsd dx, dword [esi]
mov ah, 0xc0
sbb dl, dh
xchg dl, bh
ja 0x454d04
mov ebx, 0x23c70162
pop edi
jmp 0xffaa0a8a
call fcn.004735e9
add dword [eax], eax
add byte [eax + eax*8 + 0x5a31774], al
dec ebp
sbb byte [eax + 0x4349472b], bh
test al, al
je 0x454d21
mov dword [0xb8184d05], eax
sub eax, dword [edi + 0x49]
dec ecx
inc ebx
xlatb
inc al
das
and dl, ch
mov word [edx], gs
mov ebp, 0x647913ea
jl 0x454d8c
push 0
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
add byte [edi - 1], dl
adc eax, sym.imp.KERNEL32.dll_GetFileSize
mov ebx, dword [ebp - 0xa0]
push eax
mov dword [ebx], eax
call fcn.0046ce17
mov esi, eax
mov dword [ebp - 0x98], esi
pop ecx
test esi, esi
jne 0x454d8e
call fcn.004736fd
test al, al
je 0x454d6c
jecxz 0x454d05
jle 0x454d11
jge 0x454d7f
nop
xchg ecx, eax
mov edx, 0x67c4a394
sti
fist dword [edx - 0x71]
sub edi, dword [esi]
shl esi, 0x67
stc
pop ds
ret
xor esi, esi
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.0041f8c0
push 0
push 1
lea ecx, [ebp + 8]
call fcn.0041f8c0
mov eax, esi
dec ebp
or al, ch
cmp ch, byte [ebx - 0x39740004]
call fcn.0046d264
ret
add bl, al
push dword [ebx]
push 0
push esi
call fcn.004830b0
add esp, 0xc
call fcn.004737cc
test al, al
je 0x454dc0
and eax, dword [esi + 0x25]
mov edi, 0x768dc4d6
pop esi
ror dword [ebp - 0x75a083b2], 0x78
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x9c]
call fcn.004735e9
test al, al
je 0x454de6
push esp
and ebp, dword [eax + 0x1239c5f]
or al, 0x47
mov eax, 0x91281fd8
cmp ebp, dword [0xea88a3f]
mov eax, dword [0x9d8bb0c9]
pushal
invalid
push 0
lea eax, [ebp - 0xa4]
push eax
push dword [ebx]
push esi
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
call fcn.00473787
test al, al
je 0x454e23
retf 0xbcf0
call fcn.00473406
test al, al
je 0x454e3e
xchg ebp, eax
stc
movsb byte es:[edi], byte [esi]
xor byte [ebx + 0x7d], bl
wait
sub esp, edi
test al, 0xe5
cld
adc byte [0x57035cad], 0xff
adc eax, sym.imp.KERNEL32.dll_CloseHandle
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x454d6e