Function at 0x100f57a
Capabilities:
Check if file exists
Get file attributes
Identify system language via api
Query environment variable

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x428
mov eax, dword [0x103b3bc]
push ebx
push esi
mov dword [ebp - 4], eax
xor eax, eax
push edi
mov edi, dword [ebp + 8]
cmp edi, eax
mov dword [ebp - 0x418], eax
mov dword [0x103b974], eax
je 0x100f9d6
cmp byte [edi], al
je 0x100f9d6
push 0x2e
push edi
call fcn.010079f0
test eax, eax
mov esi, 0x104
jne 0x100f5e7
push edi
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push esi
push 0x1001d88
lea eax, [ebp - 0x20c]
push eax
call fcn.0100e69c
lea edi, [ebp - 0x20c]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x428]
push eax
push edi
lea ebx, [ebp - 0x41c]
call fcn.0100e8c4
mov eax, dword [ebp - 0x41c]
add eax, edi
cmp byte [eax], 0
mov dword [ebp - 0x420], eax
je 0x100f9d6
mov eax, dword [ebp - 0x428]
cmp byte [edi + eax], 0
jne 0x100f88f
mov eax, dword [ebp - 0x424]
mov al, byte [edi + eax]
cmp al, 0x5c
je 0x100f88f
cmp al, 0x2f
je 0x100f88f
test byte [ebp + 0xd], 8
jne 0x100f85c
and dword [ebp - 0x418], 0
mov word [0x103b4f0], 1
cmp word [0x103b4f0], 0x100
ja 0x100f868
cmp dword [ebp - 0x418], 0
jne 0x100f868
mov ebx, dword [0x103b4f0]
and ebx, dword [ebp + 0xc]
cmp bx, 1
mov dword [ebp - 0x420], ebx
jne 0x100f73d
test byte [ebp + 0xd], 0x80
je 0x100f7fd
call fcn.0100d6d7
test eax, eax
mov dword [ebp - 0x424], eax
jne 0x100f6c3
cmp dword [0x103b770], eax
je 0x100f7fd
push esi
push 0
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov ebx, eax
test ebx, ebx
je 0x100f7f7
mov eax, dword [0x103b770]
test eax, eax
jne 0x100f6eb
mov eax, dword [ebp - 0x424]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 8]
push 3
push esi
push ebx
push eax
call fcn.0100ed4a
mov eax, dword [ebp - 0x41c]
push esi
add eax, edi
push eax
push ebx
call fcn.0100e69c
push ebx
call fcn.0100e745
push ebx
mov dword [ebp - 0x418], eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
push dword [ebp - 0x418]
call fcn.0100e852
test eax, eax
jne 0x100f884
lea eax, [ebp - 0x418]
push eax
call fcn.0100e7d3
mov ebx, dword [ebp - 0x420]
cmp bx, 0x80
jne 0x100f756
xor eax, eax
cmp dword [0x103b768], 2
setne al
push eax
jmp 0x100f7e7
cmp bx, 0x20
jne 0x100f7c7
lea eax, [ebp - 0x108]
push eax
push edi
call fcn.0100f1be
test eax, eax
lea eax, [ebp - 0x108]
push eax
jne 0x100f793
push edi
call fcn.0100efa1
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x100f7a3
lea eax, [ebp - 0x108]
push eax
call fcn.0100e745
mov dword [ebp - 0x418], eax
jmp 0x100f85c
lea eax, [ebp - 0x428]
push eax
lea eax, [ebp - 0x108]
push eax
push esi
push 0
push edi
push 0
call dword [sym.imp.KERNEL32.dll_SearchPathA]
test eax, eax
je 0x100f85c
jmp 0x100f78c
cmp bx, 0x10
jne 0x100f7df
mov eax, dword [ebp - 0x41c]
push 0
add eax, edi
push eax
call fcn.0100f299
jmp 0x100f798
cmp bx, 0x40
jne 0x100f7f0
push 0
mov ecx, edi
call fcn.0100edf4
jmp 0x100f798
test bx, bx
je 0x100f85c
jmp 0x100f7fd
mov ebx, dword [ebp - 0x420]
lea ecx, [ebp - 0x108]
mov eax, ebx
call fcn.0100ea55
test eax, eax
je 0x100f85c
mov eax, dword [ebp - 0x41c]
push esi
add eax, edi
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.0100e69c
lea eax, [ebp - 0x108]
push eax
call fcn.0100e745
test eax, eax
mov dword [ebp - 0x418], eax
jne 0x100f846
mov dword [0x103b974], 1
jmp 0x100f85c
push eax
call fcn.0100e852
test eax, eax
jne 0x100f85c
lea eax, [ebp - 0x418]
push eax
call fcn.0100e7d3
shl word [0x103b4f0], 1
jmp 0x100f669
cmp dword [0x103b974], 0
jne 0x100f884
cmp dword [ebp - 0x418], 0
jne 0x100f884
mov dword [0x103b974], 3
mov eax, dword [ebp - 0x418]
jmp 0x100f9e2
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov bx, ax
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultUILanguage]
cmp ax, bx
je 0x100f96c
cmp dword [ebp - 0x41c], 0
je 0x100f96c
cmp dword [ebp - 0x41c], 0xeb
jge 0x100f96c
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
movzx eax, ax
push eax
lea eax, [ebp - 0x414]
push 0x10019dc
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push esi
push dword [ebp - 0x420]
lea eax, [ebp - 0x414]
push eax
call fcn.0100e69c
push dword [ebp - 0x41c]
lea eax, [ebp - 0x310]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
push esi
lea eax, [ebp - 0x310]
push eax
call fcn.0100e984
push esi
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x310]
push eax
call fcn.0100e69c
push esi
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x310]
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
lea eax, [ebp - 0x20c]
push eax
call fcn.0100e745
push eax
mov dword [ebp - 0x418], eax
call fcn.0100e852
test eax, eax
jne 0x100f884
lea eax, [ebp - 0x418]
push eax
call fcn.0100e7d3
push edi
call fcn.0100e745
mov esi, eax
push esi
call fcn.0100e852
test eax, eax
jne 0x100f9d2
test esi, esi
je 0x100f994
push 0x10019d0
push esi
call dword [sym.imp.msvcrt.dll_strstr]
test eax, eax
pop ecx
pop ecx
jne 0x100f9d2
push esi
call fcn.0100325b
push dword [ebp - 0x420]
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push dword [ebp + 0xc]
lea eax, [ebp - 0x108]
push eax
call fcn.0100f57a
mov esi, eax
push esi
call fcn.0100e852
test eax, eax
jne 0x100f9d2
mov dword [0x103b974], 3
mov eax, esi
jmp 0x100f9e2
mov dword [0x103b974], 6
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.01037c5a
leave
ret 8