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

Disassembly:
push 0x244
mov eax, 0x1008162f
call fcn.1006a107
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
push eax
mov dword [ebp - 0x238], eax
mov esi, edx
mov dword [ebp - 0x21c], ecx
call fcn.100215e2
test al, al
jne 0x10021670
push 4
pop eax
jmp 0x100219ee
lea eax, [ebp - 0x230]
push esi
push eax
call fcn.1000724e
pop ecx
pop ecx
and dword [ebp - 4], 0
push 0x10090eac
push 0x10090c3c
lea eax, [ebp - 0x230]
push eax
call fcn.1000409d
lea eax, [ebp - 0x22c]
push edi
push eax
call fcn.1000724e
pop ecx
pop ecx
push 0x10090eb4
push 0x10090e5c
lea eax, [ebp - 0x22c]
push eax
mov byte [ebp - 4], 1
call fcn.1000409d
lea eax, [ebp - 0x234]
push ebx
push eax
call fcn.1000724e
pop ecx
pop ecx
push 0x10090ebc
push 0x10090ec4
lea eax, [ebp - 0x234]
push eax
mov byte [ebp - 4], 2
call fcn.1000409d
push dword [ebp - 0x21c]
lea eax, [ebp - 0x224]
push eax
call fcn.1000724e
pop ecx
pop ecx
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x224]
cmp dword [eax - 0xc], 0
jne 0x10021740
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0x59
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
movzx eax, ax
push eax
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
lea eax, [ebp - 0x218]
push eax
lea eax, [ebp - 0x224]
push eax
call fcn.10002a16
push 0x10090ec8
push 0x10090ed0
lea eax, [ebp - 0x224]
push eax
call fcn.1000409d
lea eax, [ebp - 0x220]
push 0x10090ed4
push eax
lea ecx, [ebp - 0x230]
call fcn.10002473
lea eax, [ebp - 0x21c]
push 0x10090ed8
push eax
lea ecx, [ebp - 0x22c]
mov byte [ebp - 4], 4
call fcn.10002473
add esp, 0x10
lea ecx, [ebp - 0x220]
push ecx
mov byte [ebp - 4], 5
call fcn.10004067
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x21c]
add eax, 0xfffffff0
call fcn.10002b29
lea eax, [ebp - 0x21c]
push 0x10090edc
push eax
lea ecx, [ebp - 0x234]
call fcn.10002473
pop ecx
pop ecx
lea ecx, [ebp - 0x220]
push ecx
mov byte [ebp - 4], 6
call fcn.10004067
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x21c]
add eax, 0xfffffff0
call fcn.10002b29
lea eax, [ebp - 0x21c]
push 0x10090ee0
push eax
lea ecx, [ebp - 0x224]
call fcn.10002473
pop ecx
pop ecx
lea ecx, [ebp - 0x220]
push ecx
mov byte [ebp - 4], 7
call fcn.10004067
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x21c]
add eax, 0xfffffff0
call fcn.10002b29
mov eax, dword [0x100b27b4]
mov esi, 0x100b27b4
mov ecx, esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x23c], eax
xor eax, eax
cmp byte [ebp + 0x14], al
mov byte [ebp - 4], 8
setne al
push eax
push 0x10090ee4
lea eax, [ebp - 0x23c]
call fcn.1000261c
mov edi, dword [ebp - 0x23c]
pop ecx
pop ecx
push dword [edi - 0xc]
lea eax, [ebp - 0x220]
push edi
call fcn.10004293
mov eax, dword [0x100b27b4]
mov ecx, esi
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x228], eax
push dword [ebp + 0x18]
lea eax, [ebp - 0x228]
push 0x10090eec
mov byte [ebp - 4], 9
call fcn.1000261c
mov eax, dword [ebp - 0x228]
pop ecx
pop ecx
push dword [eax - 0xc]
push eax
lea eax, [ebp - 0x220]
call fcn.10004293
push dword [ebp + 0x1c]
lea eax, [ebp - 0x228]
push 0x10090ef4
call fcn.1000261c
mov ebx, dword [ebp - 0x228]
pop ecx
pop ecx
push dword [ebx - 0xc]
lea eax, [ebp - 0x220]
push ebx
call fcn.10004293
call fcn.10030ac8
push eax
lea eax, [ebp - 0x240]
push eax
call fcn.1000724e
pop ecx
pop ecx
mov byte [ebp - 4], 0xa
mov eax, dword [ebp - 0x240]
push dword [eax - 0xc]
push eax
lea eax, [ebp - 0x220]
call fcn.10004293
and dword [ebp - 0x21c], 0
push 0xfde9
lea eax, [ebp - 0x21c]
push eax
mov eax, dword [ebp - 0x220]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x250], esp
mov esi, esp
call fcn.10002aac
add eax, 0x10
mov dword [esi], eax
call fcn.1000714f
and dword [ebp - 0x24c], 0
mov esi, eax
mov eax, dword [ebp - 0x21c]
add esp, 0xc
mov dword [ebp - 0x248], eax
lea eax, [ebp - 0x24c]
push eax
mov eax, dword [ebp - 0x238]
push 0
push 0x4a
push dword [eax + 8]
mov dword [ebp - 0x244], esi
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x238], eax
test esi, esi
je 0x10021984
push esi
call fcn.10060146
pop ecx
mov eax, dword [ebp - 0x240]
add eax, 0xfffffff0
call fcn.10002b29
lea eax, [ebx - 0x10]
call fcn.10002b29
lea eax, [edi - 0x10]
call fcn.10002b29
mov eax, dword [ebp - 0x220]
add eax, 0xfffffff0
call fcn.10002b29
mov eax, dword [ebp - 0x224]
add eax, 0xfffffff0
call fcn.10002b29
mov eax, dword [ebp - 0x234]
add eax, 0xfffffff0
call fcn.10002b29
mov eax, dword [ebp - 0x22c]
add eax, 0xfffffff0
call fcn.10002b29
mov eax, dword [ebp - 0x230]
add eax, 0xfffffff0
call fcn.10002b29
mov eax, dword [ebp - 0x238]
call fcn.1006a18a
ret 0x18