Function at 0xf00bbe2
Capabilities:
Check if file exists
Get common file path
Get file attributes

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x660
mov eax, dword [0xf0ad034]
mov edx, dword [ebp + 0xc]
and dword [ebp - 0x650], 0
and dword [0xf229bb8], 0
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov esi, 0xf00279c
lea edi, [ebp - 0x14]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ebx
mov dword [ebp - 4], eax
mov dword [ebp - 0x64c], edx
movsw word es:[edi], word [esi]
mov dword [ebp - 0x654], 0xffff
call fcn.0f013a44
cmp byte [edx], 0
jne 0xf00bc9a
mov esi, 0x1fa
push esi
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
je 0xf00bc9a
cmp eax, esi
ja 0xf00bc9a
lea eax, [ebp - 0x14]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0xf00bc54
lea edi, [ebp - 0x21c]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0xf00bc64
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [ebp - 0x21c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0xf00bc9a
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x64c], eax
push 0
push dword [ebp - 0x64c]
call dword [sym.imp.KERNEL32.dll__lopen]
mov edi, eax
cmp edi, 0xffffffff
mov dword [ebp - 0x64c], edi
jne 0xf00bcbc
xor eax, eax
jmp 0xf00c1c6
xor esi, esi
push esi
push esi
push edi
call dword [sym.imp.KERNEL32.dll__llseek]
cmp eax, 0xffffffff
je 0xf00c1b8
mov esi, dword [sym.imp.KERNEL32.dll__lread]
push 0x171
lea eax, [ebp - 0x49c]
push eax
push edi
call esi
cmp eax, 0xffffffff
jne 0xf00bcf1
xor esi, esi
jmp 0xf00c1b8
push 0x16
lea eax, [ebp - 0x234]
push eax
push edi
call esi
cmp eax, 0xffffffff
je 0xf00bcea
push 0x10
mov edi, 0xf00278c
lea esi, [ebp - 0x234]
pop ecx
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0xf00c1b5
and dword [ebp - 0x658], eax
jmp 0xf00c071
movzx eax, word [ebp - 0x224]
xor esi, esi
push esi
push eax
push dword [ebp - 0x64c]
call dword [sym.imp.KERNEL32.dll__llseek]
cmp eax, 0xffffffff
je 0xf00c1b8
push 0x16
lea eax, [ebp - 0x234]
push eax
push dword [ebp - 0x64c]
call dword [sym.imp.KERNEL32.dll__lread]
cmp eax, 0xffffffff
je 0xf00c1b8
push 0x10
pop eax
mov edi, 0xf00277c
lea esi, [ebp - 0x234]
mov ecx, eax
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0xf00bdef
xor esi, esi
cmp dword [ebp - 0x658], esi
jne 0xf00bdef
movzx eax, word [ebp - 0x222]
push esi
push eax
push dword [ebp - 0x64c]
call dword [sym.imp.KERNEL32.dll__llseek]
cmp eax, 0xffffffff
je 0xf00c1b8
push 6
lea eax, [ebp - 0x660]
push eax
push dword [ebp - 0x64c]
call dword [sym.imp.KERNEL32.dll__lread]
cmp eax, 0xffffffff
je 0xf00c1b8
mov ax, word [ebp - 0x660]
mov word [ebx + 0x1e], ax
mov ax, word [ebp - 0x65e]
mov word [ebx + 0x1c], ax
mov al, byte [ebp - 0x65c]
mov cl, al
and cl, 0x1c
shl cl, 2
and al, 3
or cl, al
mov byte [ebx + 0x21], cl
jmp 0xf00c071
mov edi, 0xf00276c
lea esi, [ebp - 0x234]
mov ecx, eax
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0xf00bf09
movzx eax, word [ebp - 0x222]
xor esi, esi
push esi
push eax
push dword [ebp - 0x64c]
call dword [sym.imp.KERNEL32.dll__llseek]
cmp eax, 0xffffffff
je 0xf00c1b8
push 0x68
lea eax, [ebp - 0x29c]
push eax
push dword [ebp - 0x64c]
call dword [sym.imp.KERNEL32.dll__lread]
cmp eax, 0xffffffff
je 0xf00c1b8
mov ax, word [ebp - 0x294]
mov word [ebx + 0x1a], ax
mov ax, word [ebp - 0x292]
mov word [ebx + 0x18], ax
mov ax, word [ebp - 0x290]
mov word [ebx + 0x1e], ax
mov ax, word [ebp - 0x28e]
inc esi
cmp word [ebp - 0x654], 0x64
mov word [ebx + 0x1c], ax
mov eax, dword [ebp - 0x28c]
mov dword [ebp - 0x658], esi
jbe 0xf00beba
mov cx, word [ebp - 0x298]
cmp cx, 0x64
jae 0xf00be9a
mov byte [0xf0b0b84], cl
mov cx, word [ebp - 0x296]
cmp cx, 0x32
jae 0xf00beaf
shl cl, 1
mov byte [0xf0b0b85], cl
mov ecx, eax
shr ecx, 0xc
and cl, 1
mov byte [ebx + 0x26], cl
mov ecx, eax
shr ecx, 5
and cl, 0x7f
mov byte [ebx + 0x21], cl
mov cl, al
and cl, 1
mov byte [ebx + 0x20], cl
mov cx, word [ebp - 0x284]
mov word [ebx + 0x24], cx
mov cx, word [ebp - 0x282]
mov word [ebx + 0x22], cx
mov ecx, eax
shr ecx, 3
shr eax, 0x11
and ecx, esi
and eax, esi
mov word [ebx + 0x10], cx
mov dword [0xf0af878], eax
lea eax, [ebp - 0x274]
mov dword [ebp - 0x650], eax
jmp 0xf00c071
mov edi, 0xf00275c
lea esi, [ebp - 0x234]
mov ecx, eax
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0xf00bfe7
movzx eax, word [ebp - 0x222]
xor esi, esi
push esi
push eax
push dword [ebp - 0x64c]
call dword [sym.imp.KERNEL32.dll__llseek]
cmp eax, 0xffffffff
je 0xf00c1b8
push 0x8c
lea eax, [ebp - 0x328]
push eax
push dword [ebp - 0x64c]
call dword [sym.imp.KERNEL32.dll__lread]
cmp eax, 0xffffffff
je 0xf00c1b8
mov eax, dword [ebp - 0x328]
mov dword [0xf229bb8], eax
and al, 0xf
cmp byte [ebx + 0x2d], 0
mov byte [ebx + 0x2e], al
jne 0xf00c071
push 0x40
pop esi
push esi
call fcn.0f0113d7
test eax, eax
mov dword [0xf0c2650], eax
mov byte [ebp - 0x2dd], 0
je 0xf00bfae
push esi
lea ecx, [ebp - 0x31c]
push ecx
push eax
call fcn.0f01f720
mov eax, dword [0xf0c2650]
add esp, 0xc
mov byte [eax + 0x3f], 0
push esi
call fcn.0f0113d7
test eax, eax
mov dword [0xf0c2654], eax
mov byte [ebp - 0x29d], 0
je 0xf00c071
push esi
lea ecx, [ebp - 0x2dc]
push ecx
push eax
call fcn.0f01f720
mov eax, dword [0xf0c2654]
add esp, 0xc
mov byte [eax + 0x3f], 0
jmp 0xf00c071
mov ecx, eax
mov edi, 0xf00274c
lea esi, [ebp - 0x234]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0xf00c071
movzx eax, word [ebp - 0x222]
xor esi, esi
push esi
push eax
push dword [ebp - 0x64c]
call dword [sym.imp.KERNEL32.dll__llseek]
cmp eax, 0xffffffff
je 0xf00c1b8
push 0x1ac
lea eax, [ebp - 0x648]
push eax
push dword [ebp - 0x64c]
call dword [sym.imp.KERNEL32.dll__lread]
cmp eax, 0xffffffff
je 0xf00c1b8
mov ecx, dword [ebp - 0x592]
cmp cx, 0x64
ja 0xf00c066
mov al, 0x64
sub al, cl
shl al, 1
cmp cx, si
mov dword [ebp - 0x654], ecx
mov byte [0xf0b0b84], al
mov byte [0xf0b0b85], al
jbe 0xf00c066
mov byte [ebx + 0x26], 1
mov ax, word [ebp - 0x4a0]
mov word [ebx + 0x30], ax
cmp word [ebp - 0x224], 0xffff
jne 0xf00bd25
cmp dword [0xf0bd81c], 0
jne 0xf00c0a0
cmp byte [0xf22a708], 0
je 0xf00c1b5
cmp byte [ebx + 0x2e], 1
jne 0xf00c1b5
cmp byte [ebp - 0x49a], 0
mov esi, 0x105
je 0xf00c0ef
cmp byte [ebx + 0x29], 0
jne 0xf00c0ef
push 0x1d
pop edi
cmp byte [ebp + edi - 0x49a], 0x20
jne 0xf00c0c4
dec edi
jns 0xf00c0b7
test edi, edi
jl 0xf00c0ef
push esi
call fcn.0f0113d7
test eax, eax
mov dword [ebx], eax
je 0xf00c0ef
lea ecx, [edi + 1]
push ecx
lea ecx, [ebp - 0x49a]
push ecx
push eax
call fcn.0f021220
mov eax, dword [ebx]
add esp, 0xc
mov byte [edi + eax + 1], 0
cmp byte [ebp - 0x437], 0
je 0xf00c126
cmp byte [ebx + 0x2a], 0
jne 0xf00c126
push esi
call fcn.0f0113d7
test eax, eax
mov dword [ebx + 8], eax
je 0xf00c126
push esi
lea ecx, [ebp - 0x437]
push ecx
push eax
call fcn.0f01f720
mov eax, dword [ebx + 8]
add esp, 0xc
mov byte [eax + 0x104], 0
cmp byte [ebx + 0x2c], 0
jne 0xf00c16e
cmp dword [ebp - 0x650], 0
jne 0xf00c141
lea eax, [ebp - 0x3f7]
mov dword [ebp - 0x650], eax
mov edi, dword [ebp - 0x650]
cmp byte [edi], 0
je 0xf00c16e
push esi
call fcn.0f0113d7
test eax, eax
mov dword [ebx + 4], eax
je 0xf00c16e
push esi
push edi
push eax
call fcn.0f01f720
mov eax, dword [ebx + 4]
add esp, 0xc
mov byte [eax + 0x104], 0
cmp dword [0xf0bd81c], 0
je 0xf00c187
xor eax, eax
mov al, byte [ebp - 0x439]
shr eax, 4
and al, 1
mov byte [ebx + 0x27], al
cmp byte [ebx + 0x28], 0
je 0xf00c1b5
push esi
call fcn.0f0113d7
test eax, eax
mov dword [ebx + 0xc], eax
je 0xf00c1b5
push esi
lea ecx, [ebp - 0x478]
push ecx
push eax
call fcn.0f01f720
mov eax, dword [ebx + 0xc]
add esp, 0xc
mov byte [eax + 0x104], 0
xor esi, esi
inc esi
push dword [ebp - 0x64c]
call dword [sym.imp.KERNEL32.dll__lclose]
mov eax, esi
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.0f01dda0
leave
ret 8