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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x440
mov eax, dword [0x78ca90]
xor eax, ebp
mov dword [ebp - 4], eax
movzx eax, word [0x792e20]
test eax, eax
je 0x422263
jmp 0x4225fd
call fcn.00423610
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov word [ebp - 0x41c], ax
movzx ecx, word [ebp - 0x41c]
and ecx, 0x3ff
mov word [0x792e20], cx
movzx edx, word [ebp - 0x41c]
sar edx, 0xa
mov word [0x792e24], dx
mov eax, 2
imul ecx, eax, 0
mov dword [ebp - 0x434], ecx
cmp dword [ebp - 0x434], 0x208
jae 0x4222b6
jmp 0x4222bb
call fcn.005cf37a
xor edx, edx
mov eax, dword [ebp - 0x434]
mov word [eax + 0x792e40], dx
mov ecx, 2
imul edx, ecx, 0
mov dword [ebp - 0x43c], edx
cmp dword [ebp - 0x43c], 0x208
jae 0x4222e6
jmp 0x4222eb
call fcn.005cf37a
xor eax, eax
mov ecx, dword [ebp - 0x43c]
mov word [ecx + 0x793048], ax
movzx edx, word [ebp - 0x41c]
cmp edx, 0x409
je 0x422315
movzx eax, word [ebp - 0x41c]
cmp eax, 9
jne 0x42231a
jmp 0x4225fd
push 0x55
push 0x793300
push 0x5a
movzx ecx, word [ebp - 0x41c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
jne 0x422365
mov edx, 2
imul eax, edx, 0
mov dword [ebp - 0x438], eax
cmp dword [ebp - 0x438], 0xaa
jae 0x422351
jmp 0x422356
call fcn.005cf37a
xor ecx, ecx
mov edx, dword [ebp - 0x438]
mov word [edx + 0x793300], cx
push 0x55
push 0x793250
push 0x59
movzx eax, word [ebp - 0x41c]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
jne 0x4223e0
mov ecx, 2
imul edx, ecx, 0
mov dword [ebp - 0x420], edx
cmp dword [ebp - 0x420], 0xaa
jae 0x42239c
jmp 0x4223a1
call fcn.005cf37a
xor eax, eax
mov ecx, dword [ebp - 0x420]
mov word [ecx + 0x793250], ax
mov edx, 2
imul eax, edx, 0
mov dword [ebp - 0x42c], eax
cmp dword [ebp - 0x42c], 0xaa
jae 0x4223cc
jmp 0x4223d1
call fcn.005cf37a
xor ecx, ecx
mov edx, dword [ebp - 0x42c]
mov word [edx + 0x793300], cx
push 0x104
lea eax, [ebp - 0x20c]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [ebp - 0x20c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea edx, [ebp - 0x20c]
push edx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov dword [ebp - 0x440], 0x6ebf90
mov byte [ebp - 0x415], 0
mov byte [ebp - 0x416], 0
mov eax, 2
imul ecx, eax, 0
movzx edx, word [ecx + 0x793250]
test edx, edx
je 0x42248a
push 0x6ebfec
lea eax, [ebp - 0x20c]
push eax
push 0x792e40
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push 0x793250
push 0x792e40
push 0x792e40
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push 0x792e40
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
je 0x42248a
push 0x792e40
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryEmptyW]
test eax, eax
jne 0x42248a
mov byte [ebp - 0x415], 1
mov ecx, 2
imul edx, ecx, 0
movzx eax, word [edx + 0x793300]
test eax, eax
je 0x422541
push 0x793250
push 0x104
lea ecx, [ebp - 0x414]
push ecx
call fcn.005d0290
add esp, 0xc
mov edx, dword [ebp - 0x440]
push edx
push 0x104
lea eax, [ebp - 0x414]
push eax
call fcn.005d0224
add esp, 0xc
push 0x793300
push 0x104
lea ecx, [ebp - 0x414]
push ecx
call fcn.005d0224
add esp, 0xc
push 0x6ebfec
lea edx, [ebp - 0x20c]
push edx
push 0x793048
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x414]
push eax
push 0x793048
push 0x793048
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
push 0x793048
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
je 0x422541
push 0x793048
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryEmptyW]
test eax, eax
jne 0x422541
mov byte [ebp - 0x416], 1
movzx ecx, byte [ebp - 0x416]
test ecx, ecx
jne 0x422587
movzx edx, byte [ebp - 0x415]
test edx, edx
je 0x422587
mov eax, 2
imul ecx, eax, 0
mov dword [ebp - 0x430], ecx
cmp dword [ebp - 0x430], 0x208
jae 0x422573
jmp 0x422578
call fcn.005cf37a
xor edx, edx
mov eax, dword [ebp - 0x430]
mov word [eax + 0x793048], dx
movzx ecx, byte [ebp - 0x416]
test ecx, ecx
jne 0x4225fd
movzx edx, byte [ebp - 0x415]
test edx, edx
jne 0x4225fd
mov eax, 2
imul ecx, eax, 0
mov dword [ebp - 0x424], ecx
cmp dword [ebp - 0x424], 0x208
jae 0x4225b9
jmp 0x4225be
call fcn.005cf37a
xor edx, edx
mov eax, dword [ebp - 0x424]
mov word [eax + 0x792e40], dx
mov ecx, 2
imul edx, ecx, 0
mov dword [ebp - 0x428], edx
cmp dword [ebp - 0x428], 0x208
jae 0x4225e9
jmp 0x4225ee
call fcn.005cf37a
xor eax, eax
mov ecx, dword [ebp - 0x428]
mov word [ecx + 0x793048], ax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005cfbcb
mov esp, ebp
pop ebp
ret