Function at 0x429930
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x478f90
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
push ebx
push esi
push edi
mov eax, dword [0x49f008]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x4a00d4]
test eax, eax
je 0x42998b
push eax
push str.GetLCID:_from_arg__lu
push 0x48b494
call fcn.00430910
mov eax, dword [0x4a00d4]
add esp, 0xc
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.004067b0
mov ecx, eax
test ecx, ecx
jne 0x4299a0
push 0x80004005
call fcn.004064f0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x10], eax
lea ecx, [ebp - 0x10]
mov dword [ebp - 4], 0
call fcn.00429810
test al, al
jne 0x4299e0
push str.GetLCID:_Get_Base_Dir_fail_
push 0x48b494
call fcn.00430910
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLCID]
mov esi, dword [ebp - 0x10]
mov ebx, eax
jmp 0x429b23
push 0x5c
lea ecx, [ebp - 0x10]
call fcn.004284f0
push 0x2f
lea ecx, [ebp - 0x10]
call fcn.004284f0
push 0x10
push str.I18nconfig.xml
lea ecx, [ebp - 0x10]
call fcn.00414e00
mov esi, dword [ebp - 0x10]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x429a31
push esi
push str.GetLCID:_config_not_exist___s
push 0x48b494
call fcn.00430910
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLCID]
mov ebx, eax
jmp 0x429b23
lea ecx, [ebp - 0x58]
call fcn.004372f0
push ecx
push esi
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 1
call fcn.004373d0
test al, al
jne 0x429a52
push str.GetLCID:_Load_File_fail_
jmp 0x429a65
lea ecx, [ebp - 0x58]
call fcn.0041bda0
mov edi, eax
test edi, edi
jne 0x429a7f
push str.GetLCID:_Get_Root_Element_fail_
push 0x48b494
call fcn.00430910
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLCID]
mov ebx, eax
jmp 0x429b1b
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLCID]
mov ecx, edi
mov ebx, eax
call fcn.0041bda0
mov edi, eax
test edi, edi
je 0x429b08
mov ecx, dword [edi + 0x20]
add ecx, 8
je 0x429ae7
mov eax, str.locale
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x429ac1
test dl, dl
je 0x429abd
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x429ac1
add ecx, 2
add eax, 2
test dl, dl
jne 0x429aa1
xor eax, eax
jmp 0x429ac6
sbb eax, eax
or eax, 1
test eax, eax
jne 0x429ae7
push 0x493410
lea ecx, [edi + 0x2c]
call fcn.00438100
test eax, eax
je 0x429ae7
mov eax, dword [eax + 0x18]
add eax, 8
jne 0x429b61
mov edi, dword [edi + 0x28]
test edi, edi
je 0x429b02
nop
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x18]
test eax, eax
jne 0x429b56
mov edi, dword [edi + 0x28]
test edi, edi
jne 0x429af0
xor edi, edi
test edi, edi
jne 0x429a94
push ebx
push str.GetLCID:_from_default__lu
push 0x48b494
call fcn.00430910
add esp, 0xc
lea ecx, [ebp - 0x58]
call fcn.00428200
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x429b42
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x18]
mov edi, eax
jmp 0x429b04
push 0xa
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x10], 0
push ecx
push eax
call fcn.0045fd8f
add esp, 0xc
mov ebx, eax
push ebx
push str.GetLCID:_from_config__lu
jmp 0x429b0e