Function at 0x68f0af05
Capabilities:
Check if file exists
Get file attributes
Get file version info

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x224
mov eax, dword [0x68f6edd8]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, edx
xor ebx, ebx
mov esi, ecx
push ebx
mov dword [ebp - 0x210], edi
call fcn.68f0ae44
cmp edi, ebx
jne 0x68f0af40
push 0x80070057
push 0x2e6e7368
call fcn.68ef1014
mov eax, dword [ebp - 0x210]
test eax, eax
mov edi, 0x104
je 0x68f0af72
mov ecx, edi
xor edx, edx
xor ebx, ebx
cmp word [eax], bx
je 0x68f0af5f
inc eax
inc eax
dec ecx
jne 0x68f0af53
cmp ecx, ebx
jne 0x68f0af6a
mov edx, 0x80070057
jmp 0x68f0af6e
mov ebx, edi
sub ebx, ecx
mov eax, edx
jmp 0x68f0af77
mov eax, 0x80070057
test eax, eax
jge 0x68f0af88
push eax
push 0x2e6e736d
xor ebx, ebx
call fcn.68ef1014
test ebx, ebx
jne 0x68f0af9b
push 0x80070057
push 0x2e6e7369
call fcn.68ef1014
push dword [ebp - 0x210]
lea ebx, [esi + 0x20]
push ebx
call fcn.68ef5c44
cmp byte [ebp + 8], 0
je 0x68f0b043
lea eax, [esi + 0x24]
call fcn.68ef5d92
test al, al
je 0x68f0b01f
push edi
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
mov dword [ebp - 0x210], eax
jne 0x68f0afe2
push 0x2e6e736e
call fcn.68ef2114
cmp dword [ebp - 0x210], edi
jb 0x68f0aff9
push 0x8007000e
push 0x2e6e736a
call fcn.68ef1014
mov eax, dword [ebp - 0x210]
lea eax, [ebp + eax*2 - 0x20e]
cmp word [eax], 0x5c
jne 0x68f0b010
and word [eax], 0
lea eax, [ebp - 0x20c]
push eax
lea ecx, [esi + 0x24]
call sym.GrooveUtil.DLL_public:_void___thiscall_GCStr::Set_wchar_t_const__
push dword [esi + 0x24]
lea edi, [esi + 0x28]
mov ecx, edi
call sym.GrooveUtil.DLL_public:_void___thiscall_GCStr::Set_wchar_t_const__
push 0x68f721ec
mov ecx, edi
call sym.GrooveUtil.DLL_public:_void___thiscall_GCStr::Append_wchar_t_const__
push dword [ebx]
mov ecx, edi
call sym.GrooveUtil.DLL_public:_void___thiscall_GCStr::Append_wchar_t_const__
jmp 0x68f0b04f
push dword [ebx]
lea edi, [esi + 0x28]
mov ecx, edi
call sym.GrooveUtil.DLL_public:_void___thiscall_GCStr::Set_wchar_t_const__
push dword [edi]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x68f0b066
mov eax, 0x80030002
jmp 0x68f0b19c
mov eax, dword [edi]
lea ecx, [ebp - 0x224]
push ecx
push eax
mov byte [esi], 1
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov ebx, eax
test ebx, ebx
jne 0x68f0b088
push 0x2e6e736f
call fcn.68ef2114
push ebx
call dword [sym.imp.GrooveNew.DLL_void____cdecl_GrooveNew_unsigned_int_]
test eax, eax
pop ecx
mov dword [esi + 0x2c], eax
jne 0x68f0b0a1
push 0x2e6e7370
call fcn.68ef2114
push dword [esi + 0x2c]
mov edi, dword [edi]
push ebx
push 0
push edi
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
jne 0x68f0b0bd
push 0x2e6f6b75
call fcn.68ef2114
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x214]
push eax
push 0x68f721ec
push dword [esi + 0x2c]
xor edi, edi
mov dword [ebp - 0x214], edi
mov dword [ebp - 0x21c], edi
call sub.VERSION.dll_VerQueryValueW
test eax, eax
jne 0x68f0b0f9
push 0x80070057
push 0x2e6e736b
call fcn.68ef1014
mov eax, dword [ebp - 0x214]
mov cx, word [eax + 0xa]
mov word [esi + 2], cx
mov cx, word [eax + 8]
mov word [esi + 4], cx
mov cx, word [eax + 0xe]
mov word [esi + 6], cx
mov cx, word [eax + 0xc]
mov word [esi + 8], cx
mov cx, word [eax + 0x12]
mov word [esi + 0xa], cx
mov cx, word [eax + 0x10]
mov word [esi + 0xc], cx
mov cx, word [eax + 0x16]
mov word [esi + 0xe], cx
mov cx, word [eax + 0x14]
mov word [esi + 0x10], cx
mov eax, dword [eax + 0x1c]
mov dword [esi + 0x14], eax
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x220]
push eax
push str.VarFileInfoTranslation
push dword [esi + 0x2c]
mov dword [ebp - 0x218], edi
call sub.VERSION.dll_VerQueryValueW
test eax, eax
jne 0x68f0b179
push 0x80070057
push 0x2e6e736c
call fcn.68ef1014
mov eax, dword [ebp - 0x218]
shr eax, 2
mov dword [esi + 0x18], eax
mov eax, dword [ebp - 0x220]
mov cx, word [eax]
mov word [esi + 0x1c], cx
mov ax, word [eax + 2]
mov word [esi + 0x1e], ax
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.68f53fd7
leave
ret 4