Function at 0x42d341
Capabilities:
Get file size
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push 0x403ab6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x34
push ebx
push esi
push edi
mov dword [ebp - 8], esp
mov dword [ebp - 4], 0x4024d8
mov edx, dword [ebp + 8]
xor esi, esi
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x3c], esi
call sub.MSVBVM60.DLL___vbaStrCopy
mov edx, dword [ebp + 0xc]
lea ecx, [ebp - 0x28]
call sub.MSVBVM60.DLL___vbaStrCopy
push esi
push esi
push 3
push esi
push 1
push 0x80000000
push dword [ebp - 0x2c]
lea eax, [ebp - 0x3c]
push eax
call sub.MSVBVM60.DLL___vbaStrToAnsi
push eax
call sub.KERNEL32.DLL_CreateFileA
push dword [ebp - 0x3c]
mov edi, eax
lea eax, [ebp - 0x2c]
push eax
call sub.MSVBVM60.DLL___vbaStrToUnicode
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x20], edi
call sub.MSVBVM60.DLL___vbaFreeStr
cmp edi, 0xffffffff
je 0x42d4e1
push esi
push edi
call sub.KERNEL32.DLL_GetFileSize
mov ebx, eax
cmp ebx, 0xffffffff
je 0x42d4db
cmp ebx, esi
je 0x42d4db
push esi
sub eax, 1
jo 0x42d52b
push eax
push 1
push 0x11
lea eax, [ebp - 0x34]
push eax
push 1
push 0x80
call sub.MSVBVM60.DLL___vbaRedim
add esp, 0x1c
push dword [ebp - 0x34]
lea eax, [ebp - 0x38]
push eax
call sub.MSVBVM60.DLL___vbaAryLock
push esi
lea eax, [ebp - 0x18]
push eax
push ebx
push esi
push dword [ebp - 0x38]
call sub.MSVBVM60.DLL___vbaDerefAry1
push eax
push edi
call sub.KERNEL32.DLL_ReadFile
mov edi, eax
lea eax, [ebp - 0x38]
push eax
call sub.MSVBVM60.DLL___vbaAryUnlock
cmp edi, esi
push dword [ebp - 0x20]
je 0x42d4dc
call fcn.00403e46
push esi
push esi
push 4
push esi
push esi
push 0x40000000
push dword [ebp - 0x28]
lea eax, [ebp - 0x3c]
push eax
call sub.MSVBVM60.DLL___vbaStrToAnsi
push eax
call sub.KERNEL32.DLL_CreateFileA
push dword [ebp - 0x3c]
mov edi, eax
lea eax, [ebp - 0x28]
push eax
call sub.MSVBVM60.DLL___vbaStrToUnicode
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x20], edi
call sub.MSVBVM60.DLL___vbaFreeStr
cmp edi, 0xffffffff
je 0x42d4e1
push esi
push esi
push esi
push edi
call sub.KERNEL32.DLL_SetFilePointer
push edi
call sub.KERNEL32.DLL_SetEndOfFile
push dword [ebp - 0x34]
lea eax, [ebp - 0x38]
push eax
call sub.MSVBVM60.DLL___vbaAryLock
push esi
lea eax, [ebp - 0x30]
push eax
push ebx
push esi
push dword [ebp - 0x38]
call sub.MSVBVM60.DLL___vbaDerefAry1
push eax
push edi
call sub.KERNEL32.DLL_WriteFile
mov edi, eax
lea eax, [ebp - 0x38]
push eax
call sub.MSVBVM60.DLL___vbaAryUnlock
cmp edi, esi
push dword [ebp - 0x20]
je 0x42d4dc
call fcn.00403e46
or dword [ebp - 0x14], 0xffffffff
jmp 0x42d4e1
push edi
call fcn.00403e46
push 0x42d516
jmp 0x42d4fa
lea ecx, [ebp - 0x28]
call sub.MSVBVM60.DLL___vbaFreeStr
lea ecx, [ebp - 0x2c]
call sub.MSVBVM60.DLL___vbaFreeStr
lea eax, [ebp - 0x34]
push eax
push 0
call sub.MSVBVM60.DLL___vbaAryDestruct
ret
call sub.MSVBVM60.DLL___vbaErrorOverflow
push ebp
mov ebp, esp
sub esp, 0xc
push 0x403ab6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x80
push ebx
push esi
push edi
mov dword [ebp - 0xc], esp
mov dword [ebp - 8], 0x4024e8
mov ebx, dword [ebp + 8]
mov eax, ebx
and eax, 1
mov dword [ebp - 4], eax
and ebx, 0xfffffffe
mov eax, dword [ebx]
push ebx
mov dword [ebp + 8], ebx
call dword [eax + 4]
mov eax, dword [ebx]
xor esi, esi
push esi
push 0x80010006
push ebx
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x7c], esi
call dword [eax + 0x328]
push eax
lea eax, [ebp - 0x20]
push eax
call sub.MSVBVM60.DLL___vbaObjSet
push eax
lea eax, [ebp - 0x34]
push eax
call sub.MSVBVM60.DLL___vbaLateIdCallLd
mov eax, dword [ebx]
add esp, 0x10
push ebx
call dword [eax + 0x2fc]
push eax
lea eax, [ebp - 0x18]
push eax
call sub.MSVBVM60.DLL___vbaObjSet
lea ecx, [ebp - 0x78]
mov edi, eax
mov eax, dword [edi]
push ecx
push edi
call dword [eax + 0x68]
fnclex
cmp eax, esi
jge 0x42d5e6
push 0x68
push 0x40d538
push edi
push eax
call sub.MSVBVM60.DLL___vbaHresultCheckObj
fld dword [ebp - 0x78]
mov eax, dword [ebx]
push ebx
fstp dword [ebp - 0x3c]
mov dword [ebp - 0x44], 4
call dword [eax + 0x2fc]
push eax
lea eax, [ebp - 0x1c]
push eax
call sub.MSVBVM60.DLL___vbaObjSet
lea ecx, [ebp - 0x7c]
mov edi, eax
mov eax, dword [edi]
push ecx
push edi
call dword [eax + 0x70]
fnclex
cmp eax, esi
jge 0x42d626
push 0x70
push 0x40d538
push edi
push eax
call sub.MSVBVM60.DLL___vbaHresultCheckObj
lea eax, [ebp - 0x34]
push eax
call sub.MSVBVM60.DLL___vbaR4Var
fsubr dword [ebp - 0x7c]
lea esi, [ebp - 0x44]
mov dword [ebp - 0x64], 4
fstp dword [ebp - 0x5c]
fnstsw ax
test al, 0xd
jne 0x42d775
sub esp, 0x10
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebx]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x64]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 2
movsd dword es:[edi], dword [esi]
push 0x80011001
push ebx
movsd dword es:[edi], dword [esi]
call dword [eax + 0x328]
push eax
lea eax, [ebp - 0x24]
push eax
call sub.MSVBVM60.DLL___vbaObjSet
push eax
call sub.MSVBVM60.DLL___vbaLateIdCall
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x18]
push eax
push 4
call sub.MSVBVM60.DLL___vbaFreeObjList
add esp, 0x40
lea ecx, [ebp - 0x34]
call sub.MSVBVM60.DLL___vbaFreeVar
mov eax, dword [ebx]
push 0
push 0x80010007
push ebx
call dword [eax + 0x328]
push eax
lea eax, [ebp - 0x18]
push eax
call sub.MSVBVM60.DLL___vbaObjSet
push eax
lea eax, [ebp - 0x34]
push eax
call sub.MSVBVM60.DLL___vbaLateIdCallLd
add esp, 0x10
push eax
call sub.MSVBVM60.DLL___vbaBoolVar
sub esp, 0x10
mov dword [ebp - 0x44], 0xb
mov edi, esp
lea esi, [ebp - 0x44]
push 0x80010007
not eax
mov word [ebp - 0x3c], ax
mov eax, dword [ebx]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ebx
movsd dword es:[edi], dword [esi]
call dword [eax + 0x328]
push eax
lea eax, [ebp - 0x1c]
push eax
call sub.MSVBVM60.DLL___vbaObjSet
push eax
call sub.MSVBVM60.DLL___vbaLateIdSt
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x18]
push eax
push 2
call sub.MSVBVM60.DLL___vbaFreeObjList
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x34]
push eax
push 2
call sub.MSVBVM60.DLL___vbaFreeVarList
add esp, 0x18
mov dword [ebp - 4], 0
wait
push 0x42d758
jmp 0x42d757
ret
jmp fcn.00403abc