Function at 0x1020cab
Capabilities:
Get geographical location

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x18c
mov eax, dword [0x1027474]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
push esi
push edi
xor edi, edi
mov dword [ebp - 0x168], eax
mov dword [eax], edi
lea eax, [ebp - 0x160]
push eax
push ecx
mov dword [ebp - 0x160], edi
call fcn.01020704
mov esi, eax
cmp esi, edi
jl 0x1020f5f
mov esi, dword [ebp + 0xc]
neg esi
sbb esi, esi
push ebx
mov ebx, dword [sym.imp.OLEAUT32.dll_VariantClear]
and esi, 0xfffffffe
lea eax, [ebp - 0x17c]
inc esi
push eax
mov dword [ebp - 0x164], edi
mov dword [ebp - 0x16c], 1
inc esi
call ebx
mov eax, dword [ebp - 0x160]
mov ecx, dword [eax]
lea edx, [ebp - 0x17c]
push edx
push 0x1006a50
push eax
call dword [ecx + 0xb0]
cmp word [ebp - 0x17c], 8
mov edi, dword [sym.imp.KERNEL32.dll_CompareStringOrdinal]
jne 0x1020db7
xor eax, eax
cmp dword [ebp - 0x174], eax
je 0x1020db7
push eax
push 0xffffffffffffffff
push dword [ebp - 0x174]
push 0xffffffffffffffff
cmp dword [ebp + 0xc], eax
je 0x1020d8d
push 0x1006c3c
call edi
cmp eax, 2
jne 0x1020d70
xor esi, esi
jmp 0x1020db7
push 0
push 0xffffffffffffffff
push dword [ebp - 0x174]
push 0xffffffffffffffff
push 0x1006c2c
call edi
cmp eax, 2
jne 0x1020db7
xor esi, esi
inc esi
jmp 0x1020db7
push 0x1006c20
call edi
cmp eax, 2
jne 0x1020d9c
push eax
jmp 0x1020db6
push 0
push 0xffffffffffffffff
push dword [ebp - 0x174]
push 0xffffffffffffffff
push 0x1006c10
call edi
cmp eax, 2
jne 0x1020db7
push 3
pop esi
lea eax, [ebp - 0x18c]
push eax
call ebx
mov eax, dword [ebp - 0x160]
mov ecx, dword [eax]
lea edx, [ebp - 0x18c]
push edx
push 0x1006c00
push eax
call dword [ecx + 0xb0]
xor ebx, ebx
cmp word [ebp - 0x18c], 8
jne 0x1020e58
cmp dword [ebp - 0x184], ebx
je 0x1020e58
push ebx
push 0xffffffffffffffff
push dword [ebp - 0x184]
push 0xffffffffffffffff
push 0x1006bec
call edi
cmp eax, 2
jne 0x1020e12
mov dword [ebp - 0x16c], 1
jmp 0x1020e2f
push ebx
push 0xffffffffffffffff
push dword [ebp - 0x184]
push 0xffffffffffffffff
push 0x1006bd8
call edi
cmp eax, 2
jne 0x1020e37
mov dword [ebp - 0x16c], ebx
mov dword [ebp - 0x164], ebx
jmp 0x1020e58
push ebx
push 0xffffffffffffffff
push dword [ebp - 0x184]
push 0xffffffffffffffff
push 0x10029f8
call edi
cmp eax, 2
jne 0x1020e58
mov dword [ebp - 0x164], 1
sub esi, ebx
je 0x1020e83
dec esi
je 0x1020e7f
dec esi
je 0x1020e77
dec esi
je 0x1020e6f
mov esi, 0x80070057
jmp 0x1020f46
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLCID]
jmp 0x1020e8b
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
jmp 0x1020e8b
push 0xe
jmp 0x1020e85
push 0x10
call dword [sym.imp.KERNEL32.dll_GetUserGeoID]
cmp dword [ebp - 0x164], ebx
je 0x1020ecb
cmp dword [ebp + 0xc], ebx
jne 0x1020ecb
push ebx
push 0x55
lea ecx, [ebp - 0xb0]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_LCIDToLocaleName]
test eax, eax
jne 0x1020f31
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jle 0x1020f44
and eax, 0xffff
or eax, 0x80070000
jmp 0x1020f44
push eax
lea eax, [ebp - 0xb0]
cmp dword [ebp - 0x16c], ebx
je 0x1020f1b
push 0x1006bd0
push 0x55
push eax
call fcn.01007b68
mov esi, eax
add esp, 0x10
cmp esi, ebx
jl 0x1020f46
push 0x55
lea eax, [ebp - 0x15c]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xb0]
push eax
push 0x200
push 0x7f
call dword [sym.imp.KERNEL32.dll_LCMapStringW]
test eax, eax
je 0x1020eb1
lea eax, [ebp - 0x15c]
jmp 0x1020f37
push 0x1006bc8
push 0x55
push eax
call fcn.01007b68
mov esi, eax
add esp, 0x10
cmp esi, ebx
jl 0x1020f46
lea eax, [ebp - 0xb0]
push dword [ebp - 0x168]
push eax
call dword [sym.imp.SHLWAPI.dll_SHStrDupW]
mov esi, eax
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [ebp - 0x18c]
push eax
call edi
lea eax, [ebp - 0x17c]
push eax
call edi
pop ebx
mov eax, dword [ebp - 0x160]
test eax, eax
je 0x1020f6f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
xor ecx, ebp
pop esi
call fcn.01016fbd
leave
ret 0xc