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

Disassembly:
push ebp
lea ebp, [esp - 0xf3c]
sub esp, 0xfbc
mov eax, dword [0x10084500]
push ebx
push dword [ebp + 0xf44]
xor ebx, ebx
mov dword [ebp + 0xf38], eax
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x7c], ebx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x1002ad60
push ebx
push dword [ebp + 0xf44]
call dword [sym.imp.KERNEL32.dll_BeginUpdateResourceA]
cmp eax, ebx
mov dword [ebp - 0x70], eax
je 0x1002ad60
push esi
push edi
push dword [0x10083e38]
mov word [ebp - 0x68], bx
xor eax, eax
mov ecx, 0x3e7
lea edi, [ebp - 0x66]
rep stosd dword es:[edi], eax
lea ecx, [ebp - 0x6c]
stosw word es:[edi], ax
lea esi, [ebp - 0x68]
call fcn.1002aab0
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [ebp + 0xf44], ebx
cmp dword [ebp + 0xf44], 8
jne 0x1002aba6
push dword [ebp - 0x6c]
call edi
mov word [esi], ax
push dword [ebp - 0x6c]
inc esi
inc esi
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push dword [ebp - 0x6c]
call edi
lea esi, [esi + eax*2]
jmp 0x1002abd3
cmp dword [ebp + 0xf44], 0xa
jne 0x1002abd1
push dword [0x10083e3c]
call edi
mov word [esi], ax
push dword [0x10083e3c]
inc esi
inc esi
push esi
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push dword [0x10083e3c]
jmp 0x1002ab9f
inc esi
inc esi
inc dword [ebp + 0xf44]
cmp dword [ebp + 0xf44], 0x10
jl 0x1002ab7f
lea eax, [ebp - 0x68]
sub esi, eax
push esi
mov esi, dword [sym.imp.KERNEL32.dll_UpdateResourceA]
push eax
push ebx
push 7
push 6
push dword [ebp - 0x70]
call esi
mov ecx, dword [ebp - 0x6c]
add ecx, 0xfffffff0
call fcn.10004f32
cmp dword [ebp + 0xf48], ebx
mov edi, dword [sym.imp.KERNEL32.dll_CreateFileA]
je 0x1002ace0
push ebx
push 0x80
push 3
push ebx
push 1
push 0x80000000
push dword [ebp + 0xf48]
call edi
cmp eax, 0xffffffff
mov dword [ebp - 0x6c], eax
je 0x1002ac90
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push eax
mov dword [ebp + 0xf44], eax
call fcn.100556e2
cmp eax, ebx
pop ecx
mov dword [ebp - 0x78], eax
je 0x1002ac87
push ebx
lea ecx, [ebp - 0x80]
push ecx
push dword [ebp + 0xf44]
push eax
push dword [ebp - 0x6c]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1002ac87
mov eax, dword [ebp + 0xf44]
cmp dword [ebp - 0x80], eax
jne 0x1002ac87
push eax
push dword [ebp - 0x78]
push ebx
push 0x67
push 0x1006f3f0
push dword [ebp - 0x70]
call esi
push dword [ebp - 0x6c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [ebp + 0xf48]
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp eax, ebx
mov dword [ebp - 0x6c], eax
je 0x1002ace0
mov ecx, dword [ebp - 0x74]
push 1
push 0xe
push eax
push dword [ebp - 0x70]
call fcn.1002a8e0
mov ecx, dword [ebp - 0x74]
push 0xffffffffffffffff
push 3
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call fcn.1002a8e0
mov ecx, dword [ebp - 0x74]
push 0xffffffffffffffff
push 0x10
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
call fcn.1002a8e0
push dword [ebp - 0x6c]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push ebx
push 0x80
push 3
push ebx
push 1
push 0x80000000
push dword [0x10083e38]
call edi
cmp eax, 0xffffffff
mov dword [ebp - 0x74], eax
je 0x1002ad54
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
push edi
call fcn.100556e2
cmp eax, ebx
pop ecx
mov dword [ebp - 0x78], eax
je 0x1002ad4b
push ebx
lea ecx, [ebp + 0xf48]
push ecx
push edi
push eax
push dword [ebp - 0x74]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1002ad4b
cmp dword [ebp + 0xf48], edi
jne 0x1002ad4b
push edi
push dword [ebp - 0x78]
push ebx
push 0x69
push 0x1006f3f0
push dword [ebp - 0x70]
call esi
mov dword [ebp - 0x7c], eax
push dword [ebp - 0x74]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
push dword [ebp - 0x70]
call dword [sym.imp.KERNEL32.dll_EndUpdateResourceA]
pop edi
pop esi
mov ecx, dword [ebp + 0xf38]
mov eax, dword [ebp - 0x7c]
pop ebx
call fcn.100568ae
add ebp, 0xf3c
leave
ret 8