Function at 0x40a650
Capabilities:
Check if file exists
Get file attributes
Get geographical location

Disassembly:
mov eax, dword [esp + 0x10]
sub esp, 0x11c
cmp eax, 0x2e717472
je 0x40a672
cmp eax, 0x2e646c6c
je 0x40a672
or eax, 0xffffffff
add esp, 0x11c
ret
push ebp
mov ebp, dword [esp + 0x134]
cmp ebp, 0x736c6f63
push esi
push edi
je 0x40a69d
cmp ebp, 0x6e6c6f63
je 0x40a768
pop edi
pop esi
or eax, 0xffffffff
pop ebp
add esp, 0x11c
ret
mov eax, dword [esp + 0x140]
test eax, eax
je 0x40a6b5
mov dword [esp + 0xc], 0x418540
jmp 0x40a768
push 0x10
lea eax, [esp + 0x14]
push eax
push 0x59
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
mov edi, 0x41853c
lea esi, [esp + 0x10]
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x40a722
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
cmp eax, 0x804
je 0x40a707
cmp eax, 0x1004
je 0x40a707
lea edi, [esp + 0x10]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40a6f6
mov eax, dword [0x418538]
mov dword [edi], eax
jmp 0x40a760
lea edi, [esp + 0x10]
dec edi
lea esp, [esp]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40a710
mov ecx, dword [0x418534]
mov dword [edi], ecx
jmp 0x40a760
mov edi, 0x418530
lea esi, [esp + 0x10]
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40a74a
mov edi, 0x41852c
lea esi, [esp + 0x10]
mov ecx, 3
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jne 0x40a760
mov cx, word [0x418528]
mov dl, byte [0x41852a]
mov word [esp + 0x10], cx
mov byte [esp + 0x12], dl
lea eax, [esp + 0x10]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x12c]
push ebx
mov ebx, dword [esp + 0x134]
mov edx, ebx
sub edx, eax
mov dword [esp + 0x24], edx
nop
mov eax, dword [esp + 0x130]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x40a787
push ebx
call fcn.0040a5b0
mov eax, ebx
add esp, 4
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40a7a0
sub eax, edx
lea eax, [ebx + eax - 1]
cmp eax, ebx
jb 0x40a7c3
cmp byte [eax], 0x5c
je 0x40a7bf
dec eax
cmp eax, ebx
jae 0x40a7b1
mov eax, ebx
jmp 0x40a7c8
cmp eax, ebx
jae 0x40a7c7
mov eax, ebx
jmp 0x40a7c8
inc eax
lea edx, [esp + 0x2c]
sub edx, eax
mov edi, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x40a7d0
mov eax, ebx
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40a7e0
sub eax, edx
add eax, 0xb
cmp ebp, 0x736c6f63
movzx ecx, ax
jne 0x40a811
mov eax, dword [esp + 0x10]
lea esi, [eax + 1]
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40a800
sub eax, esi
add eax, 0x10
movzx edx, ax
add ecx, edx
lea eax, [esp + 0x2c]
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40a818
sub eax, esi
movzx eax, ax
add ecx, eax
mov eax, dword [esp + 0x13c]
cmp eax, 0x2e717472
je 0x40a83b
cmp eax, 0x2e646c6c
jne 0x40a83e
add ecx, 4
movzx eax, word [esp + 0x138]
inc ecx
cmp ecx, eax
ja 0x40a9cc
mov edi, ebx
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40a852
cmp ebp, 0x736c6f63
mov ecx, dword [str..Resources_]
mov dword [edi], ecx
mov edx, dword [0x418498]
mov dword [edi + 4], edx
mov eax, dword [0x41849c]
mov dword [edi + 8], eax
jne 0x40a8c9
mov eax, dword [esp + 0x10]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40a881
mov edi, ebx
sub eax, edx
dec edi
lea ecx, [ecx]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40a890
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebx
dec edi
jmp 0x40a8b0
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40a8b0
mov ecx, dword [str..lproj_]
mov dword [edi], ecx
mov edx, dword [0x418524]
mov dword [edi + 4], edx
lea eax, [esp + 0x2c]
mov edx, eax
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40a8d0
mov edi, ebx
sub eax, edx
dec edi
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40a8e0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
cmp ebp, 0x736c6f63
rep movsb byte es:[edi], byte [esi]
jne 0x40a926
mov edi, ebx
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40a903
mov eax, dword [str.Localized]
mov dword [edi], eax
mov ecx, dword [0x418518]
mov dword [edi + 4], ecx
mov dx, word [0x41851c]
mov word [edi + 8], dx
mov eax, dword [esp + 0x13c]
cmp eax, 0x2e646c6c
je 0x40a95a
cmp eax, 0x2e717472
jne 0x40a978
mov edi, ebx
dec edi
mov edi, edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40a940
mov eax, dword [str..qtr]
mov dword [edi], eax
mov cl, byte [0x418510]
mov byte [edi + 4], cl
jmp 0x40a978
mov edi, ebx
dec edi
lea ecx, [ecx]
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40a960
mov edx, dword [str..dll]
mov dword [edi], edx
mov al, byte [0x418508]
mov byte [edi + 4], al
mov eax, ebx
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40a980
sub eax, edx
mov dword [esp + 0x28], eax
je 0x40a9ec
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x40a99f
test al, 0x10
je 0x40a9ec
cmp ebp, 0x736c6f63
jne 0x40a9dc
mov esi, dword [esp + 0x10]
mov edi, 0x418540
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40a9dc
mov edx, dword [esp + 0x24]
mov dword [esp + 0x10], 0x418540
jmp 0x40a780
pop ebx
pop edi
pop esi
mov eax, 0xfffff7c2
pop ebp
add esp, 0x11c
ret
pop ebx
pop edi
pop esi
mov eax, 0xffffffd5
pop ebp
add esp, 0x11c
ret
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x11c
ret