Function at 0x42e160
Capabilities:
Get geographical location
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x420
mov eax, dword [0x469744]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
xor bl, bl
push esi
push edi
mov dword [ebp - 0x420], 0
mov byte [ebp - 0x415], bl
test eax, eax
jne 0x42e1fd
mov esi, dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
call esi
movzx eax, ax
push eax
push str.User_default_LangID:_0x_X
push 0x46a9d4
xor eax, eax
call fcn.0042d150
mov edi, dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
add esp, 0xc
call edi
movzx ecx, ax
push ecx
push str.User_default_UI_language:_0x_X
push 0x46a9d4
xor eax, eax
call fcn.0042d150
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetVersion]
movzx eax, ax
mov edx, 0x105
cmp ax, dx
je 0x42e1f9
mov ecx, 0x205
cmp ax, cx
je 0x42e1f9
call edi
movzx edi, ax
mov dword [ebp - 0x41c], edi
jmp 0x42e21a
call esi
jmp 0x42e20f
push 0x10
lea ecx, [ebp - 0x420]
push ecx
push eax
call fcn.0043ad3d
add esp, 0xc
movzx edx, ax
mov dword [ebp - 0x41c], edx
mov edi, edx
mov esi, dword [0x46bf88]
mov eax, dword [0x46bf8c]
cmp esi, eax
je 0x42e26e
lea esp, [esp]
test bl, bl
jne 0x42e46e
movzx ecx, word [esi + 0x1c]
cmp cx, di
jne 0x42e25f
push 0
mov word [0x46bf98], cx
push esi
or eax, 0xffffffff
mov ecx, 0x46bfa4
call fcn.00406170
mov eax, dword [0x46bf8c]
mov bl, 1
add esi, 0x20
cmp esi, eax
jne 0x42e230
test bl, bl
jne 0x42e46e
mov ecx, 0x403
cmp di, cx
je 0x42e296
mov edx, 0x42d
cmp di, dx
je 0x42e296
mov ecx, 0x456
cmp di, cx
je 0x42e296
mov edx, 0x803
cmp di, dx
jne 0x42e2f8
mov esi, dword [0x46bf88]
mov dword [ebp - 0x41c], 0xc0a
cmp esi, eax
je 0x42e2f2
lea ebx, [ebx]
test bl, bl
jne 0x42e46e
mov ecx, 0xc0a
cmp word [esi + 0x1c], cx
jne 0x42e2e3
mov edx, ecx
push 0
push esi
or eax, 0xffffffff
mov ecx, 0x46bfa4
mov word [0x46bf98], dx
call fcn.00406170
mov eax, dword [0x46bf8c]
mov bl, 1
add esi, 0x20
cmp esi, eax
jne 0x42e2b0
test bl, bl
jne 0x42e46e
mov edi, dword [ebp - 0x41c]
mov esi, dword [0x46bf88]
cmp esi, eax
je 0x42e3bd
jmp 0x42e316
mov edi, dword [ebp - 0x41c]
test bl, bl
jne 0x42e46e
movzx edi, di
mov eax, edi
and eax, 0x3ff
push eax
call dword [sym.imp.KERNEL32.dll_ConvertDefaultLocale]
movzx ecx, word [esi + 0x1c]
cmp ecx, eax
jne 0x42e39f
push 0x104
lea edx, [ebp - 0x20c]
push edx
push 0x1004
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
call edi
movzx ecx, word [esi + 0x1c]
push 0x104
lea eax, [ebp - 0x414]
push eax
push 0x1004
push ecx
call edi
lea edx, [ebp - 0x414]
push edx
lea eax, [ebp - 0x20c]
push eax
call fcn.0043a445
add esp, 8
test eax, eax
jne 0x42e39f
mov cx, word [esi + 0x1c]
push eax
mov word [0x46bf98], cx
push esi
or eax, 0xffffffff
mov ecx, 0x46bfa4
call fcn.00406170
mov bl, 1
mov eax, dword [0x46bf8c]
add esi, 0x20
cmp esi, eax
jne 0x42e310
test bl, bl
jne 0x42e46e
mov edi, dword [ebp - 0x41c]
mov esi, dword [0x46bf88]
cmp esi, eax
je 0x42e491
jmp 0x42e3d0
test bl, bl
jne 0x42e46e
mov dx, word [esi + 0x1c]
xor dx, di
mov ecx, 0x3ff
test cx, dx
jne 0x42e45f
push 0x104
lea edx, [ebp - 0x20c]
push edx
movzx eax, di
mov edi, dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
push 0x1004
push eax
call edi
movzx edx, word [esi + 0x1c]
push 0x104
lea ecx, [ebp - 0x414]
push ecx
push 0x1004
push edx
call edi
lea eax, [ebp - 0x414]
push eax
lea ecx, [ebp - 0x20c]
push ecx
call fcn.0043a445
add esp, 8
test eax, eax
jne 0x42e454
mov dx, word [esi + 0x1c]
push eax
push esi
or eax, 0xffffffff
mov ecx, 0x46bfa4
mov word [0x46bf98], dx
call fcn.00406170
mov bl, 1
mov edi, dword [ebp - 0x41c]
mov eax, dword [0x46bf8c]
add esi, 0x20
cmp esi, eax
jne 0x42e3d0
test bl, bl
je 0x42e491
cmp dword [0x46bfb8], 8
mov eax, dword [0x46bfa4]
jae 0x42e481
mov eax, 0x46bfa4
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x46bfc0], eax
mov bl, 1
jmp 0x42e50b
mov esi, dword [0x46bf88]
mov ecx, 0x409
mov word [0x46bf98], cx
cmp esi, eax
je 0x42e505
mov edi, dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov ebx, 8
cmp byte [ebp - 0x415], 0
jne 0x42e505
mov dx, word [0x46bf98]
cmp word [esi + 0x1c], dx
jne 0x42e4fe
push 0
push esi
or eax, 0xffffffff
mov ecx, 0x46bfa4
call fcn.00406170
mov eax, dword [0x46bfa4]
cmp dword [0x46bfb8], ebx
jae 0x42e4ea
mov eax, 0x46bfa4
push eax
call edi
mov dword [0x46bfc0], eax
mov eax, dword [0x46bf8c]
mov byte [ebp - 0x415], 1
add esi, 0x20
cmp esi, eax
jne 0x42e4b2
mov bl, byte [ebp - 0x415]
movzx eax, word [0x46bf98]
push 4
push 0x46bf9a
push 3
push eax
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
mov ecx, dword [ebp - 4]
pop edi
pop esi
mov al, bl
xor ecx, ebp
pop ebx
call fcn.00438876
mov esp, ebp
pop ebp
ret 4