Function at 0x1000289c
Capabilities:
Get geographical location

Disassembly:
jmp 0x100518a8
push ecx
push ecx
push ebx
push ebp
push esi
mov ebp, 0x1017b204
push ebp
call sym.CoreFoundation.dll___CFSpinLock
mov eax, dword [0x1017b20c]
xor ebx, ebx
pop ecx
cmp eax, ebx
je 0x100518db
push eax
mov esi, eax
call sym.CoreFoundation.dll_CFRetain
push ebp
call sym.CoreFoundation.dll___CFSpinUnlock
pop ecx
pop ecx
mov eax, esi
jmp 0x10051afa
push edi
push ebp
call sym.CoreFoundation.dll___CFSpinUnlock
call fcn.10002405
mov esi, eax
mov dword [esp + 0x14], esi
mov dword [esp], str.AppleLocale
call sym.CoreFoundation.dll___CFStringMakeConstantString
push eax
push esi
call sym.CoreFoundation.dll_CFDictionaryGetValue
mov edi, eax
add esp, 0xc
cmp edi, ebx
je 0x1005191d
push edi
push dword [sym.CoreFoundation.dll_kCFAllocatorSystemDefault]
call sym.CoreFoundation.dll_CFLocaleCreateCanonicalLocaleIdentifierFromString
pop ecx
mov edi, eax
jmp 0x10051a33
push str.AppleLanguages
call sym.CoreFoundation.dll___CFStringMakeConstantString
push eax
push esi
call sym.CoreFoundation.dll_CFDictionaryGetValue
add esp, 0xc
mov dword [esp + 0x14], eax
cmp eax, ebx
je 0x10051a34
push eax
call sym.CoreFoundation.dll_CFGetTypeID
pop ecx
mov esi, eax
call sym.CoreFoundation.dll_CFArrayGetTypeID
cmp eax, esi
jne 0x10051a34
push dword [esp + 0x14]
call sym.CoreFoundation.dll_CFArrayGetCount
pop ecx
test eax, eax
jle 0x10051a34
push ebx
push dword [esp + 0x18]
call sym.CoreFoundation.dll_CFArrayGetValueAtIndex
pop ecx
pop ecx
mov dword [esp + 0x14], eax
cmp eax, ebx
je 0x10051a34
push eax
call sym.CoreFoundation.dll_CFGetTypeID
pop ecx
mov esi, eax
call sym.CoreFoundation.dll_CFStringGetTypeID
cmp eax, esi
jne 0x10051a34
push dword [esp + 0x14]
push dword [sym.CoreFoundation.dll_kCFAllocatorSystemDefault]
call sym.CoreFoundation.dll_CFLocaleCreateCanonicalLanguageIdentifierFromString
pop ecx
pop ecx
mov dword [esp + 0x14], eax
cmp eax, ebx
je 0x10051a34
push str.Country
call sym.CoreFoundation.dll___CFStringMakeConstantString
push eax
push dword [esp + 0x18]
call sym.CoreFoundation.dll_CFDictionaryGetValue
mov edi, eax
add esp, 0xc
cmp edi, ebx
je 0x10051a17
push edi
call sym.CoreFoundation.dll_CFGetTypeID
pop ecx
mov esi, eax
call sym.CoreFoundation.dll_CFStringGetTypeID
cmp eax, esi
jne 0x10051a17
push edi
push dword [esp + 0x18]
push 0x101334dc
call sym.CoreFoundation.dll___CFStringMakeConstantString
pop ecx
push eax
push ebx
push dword [sym.CoreFoundation.dll_kCFAllocatorSystemDefault]
call sym.CoreFoundation.dll_CFStringCreateWithFormat
mov esi, eax
push esi
push dword [sym.CoreFoundation.dll_kCFAllocatorSystemDefault]
call sym.CoreFoundation.dll_CFLocaleCreateCanonicalLocaleIdentifierFromString
push esi
mov edi, eax
call sym.CoreFoundation.dll_CFRelease
add esp, 0x20
jmp 0x10051a2a
push dword [esp + 0x14]
push dword [sym.CoreFoundation.dll_kCFAllocatorSystemDefault]
call sym.CoreFoundation.dll_CFLocaleCreateCanonicalLocaleIdentifierFromString
pop ecx
pop ecx
mov edi, eax
push dword [esp + 0x14]
call sym.CoreFoundation.dll_CFRelease
pop ecx
push ebx
push 0x18
call sym.CoreFoundation.dll_CFLocaleGetTypeID
push eax
push dword [sym.CoreFoundation.dll_kCFAllocatorSystemDefault]
call sym.CoreFoundation.dll__CFRuntimeCreateInstance
mov esi, eax
add esp, 0x10
cmp esi, ebx
jne 0x10051a73
cmp dword [esp + 0x10], ebx
je 0x10051a61
push dword [esp + 0x10]
call sym.CoreFoundation.dll_CFRelease
pop ecx
cmp edi, ebx
je 0x10051a6c
push edi
call sym.CoreFoundation.dll_CFRelease
pop ecx
xor eax, eax
jmp 0x10051af9
mov al, byte [esi + 4]
and al, 0xfe
or al, 2
mov byte [esi + 4], al
cmp edi, ebx
jne 0x10051a95
push 0x1012f668
call sym.CoreFoundation.dll___CFStringMakeConstantString
push eax
call sym.CoreFoundation.dll_CFRetain
pop ecx
pop ecx
mov edi, eax
push sym.CoreFoundation.dll_kCFTypeDictionaryValueCallBacks
push ebx
mov dword [esi + 8], edi
push ebx
push dword [sym.CoreFoundation.dll_kCFAllocatorSystemDefault]
call sym.CoreFoundation.dll_CFDictionaryCreateMutable
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x20]
push ebp
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], ebx
mov byte [esi + 0x1c], bl
call sym.CoreFoundation.dll___CFSpinLock
add esp, 0x14
cmp dword [0x1017b20c], ebx
jne 0x10051ad6
mov dword [0x1017b20c], esi
jmp 0x10051add
push esi
call sym.CoreFoundation.dll_CFRelease
pop ecx
push dword [0x1017b20c]
call sym.CoreFoundation.dll_CFRetain
push ebp
mov esi, eax
call sym.CoreFoundation.dll___CFSpinUnlock
pop ecx
pop ecx
call sym.CoreFoundation.dll_CFNotificationCenterGetLocalCenter
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
pop ecx
pop ecx
ret