Function at 0x10001e60
Capabilities:
Get geographical location

Disassembly:
jmp 0x10054e54
push esi
push 0x10186d90
call sym.CoreFoundation.dll___CFSpinLock
mov esi, dword [0x10186d98]
pop ecx
test esi, esi
je 0x10054e81
push esi
call sym.CoreFoundation.dll_CFRetain
mov dword [esp], 0x10186d90
call sym.CoreFoundation.dll___CFSpinUnlock
pop ecx
mov eax, esi
pop esi
ret
push ebx
push edi
push 0x10186d90
call sym.CoreFoundation.dll___CFSpinUnlock
call fcn.10002a9a
mov ebx, eax
mov dword [esp], str.AppleLocale
call sym.CoreFoundation.dll___CFStringMakeConstantString
push eax
push ebx
call sym.CoreFoundation.dll_CFDictionaryGetValue
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10054ec5
push edi
push dword [sym.CoreFoundation.dll_kCFAllocatorSystemDefault]
call sym.CoreFoundation.dll_CFLocaleCreateCanonicalLocaleIdentifierFromString
pop ecx
pop ecx
mov edi, eax
jmp 0x10054fc1
push ebp
push str.AppleLanguages
call sym.CoreFoundation.dll___CFStringMakeConstantString
push eax
push ebx
call sym.CoreFoundation.dll_CFDictionaryGetValue
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x10054fc0
push ebp
call sym.CoreFoundation.dll_CFGetTypeID
pop ecx
mov esi, eax
call sym.CoreFoundation.dll_CFArrayGetTypeID
cmp eax, esi
jne 0x10054fc0
push ebp
call sym.CoreFoundation.dll_CFArrayGetCount
pop ecx
test eax, eax
jle 0x10054fc0
push 0
push ebp
call sym.CoreFoundation.dll_CFArrayGetValueAtIndex
mov ebp, eax
pop ecx
pop ecx
test ebp, ebp
je 0x10054fc0
push ebp
call sym.CoreFoundation.dll_CFGetTypeID
pop ecx
mov esi, eax
call sym.CoreFoundation.dll_CFStringGetTypeID
cmp eax, esi
jne 0x10054fc0
push ebp
push dword [sym.CoreFoundation.dll_kCFAllocatorSystemDefault]
call sym.CoreFoundation.dll_CFLocaleCreateCanonicalLanguageIdentifierFromString
mov ebp, eax
pop ecx
pop ecx
test ebp, ebp
je 0x10054fc0
push str.Country
call sym.CoreFoundation.dll___CFStringMakeConstantString
push eax
push ebx
call sym.CoreFoundation.dll_CFDictionaryGetValue
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10054fa9
push edi
call sym.CoreFoundation.dll_CFGetTypeID
pop ecx
mov esi, eax
call sym.CoreFoundation.dll_CFStringGetTypeID
cmp eax, esi
jne 0x10054fa9
push edi
push ebp
push 0x1013f8e4
call sym.CoreFoundation.dll___CFStringMakeConstantString
pop ecx
push eax
push 0
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 0x10054fb9
push ebp
push dword [sym.CoreFoundation.dll_kCFAllocatorSystemDefault]
call sym.CoreFoundation.dll_CFLocaleCreateCanonicalLocaleIdentifierFromString
pop ecx
pop ecx
mov edi, eax
push ebp
call sym.CoreFoundation.dll_CFRelease
pop ecx
pop ebp
push 0
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
test esi, esi
jne 0x10054ffc
test ebx, ebx
je 0x10054fea
push ebx
call sym.CoreFoundation.dll_CFRelease
pop ecx
test edi, edi
je 0x10054ff5
push edi
call sym.CoreFoundation.dll_CFRelease
pop ecx
xor eax, eax
jmp 0x1005508d
mov al, byte [esi + 4]
and al, 0xfe
or al, 2
mov byte [esi + 4], al
test edi, edi
jne 0x1005501e
push 0x1013b138
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 0
mov dword [esi + 8], edi
push 0
push dword [sym.CoreFoundation.dll_kCFAllocatorSystemDefault]
call sym.CoreFoundation.dll_CFDictionaryCreateMutable
mov dword [esi + 0xc], eax
xor eax, eax
push 0x10186d90
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], eax
mov byte [esi + 0x1c], al
call sym.CoreFoundation.dll___CFSpinLock
add esp, 0x14
cmp dword [0x10186d98], 0
jne 0x10055064
mov dword [0x10186d98], esi
jmp 0x10055071
push esi
call sym.CoreFoundation.dll_CFRelease
mov esi, dword [0x10186d98]
pop ecx
push esi
call sym.CoreFoundation.dll_CFRetain
mov esi, eax
mov dword [esp], 0x10186d90
call sym.CoreFoundation.dll___CFSpinUnlock
pop ecx
call sym.CoreFoundation.dll_CFNotificationCenterGetLocalCenter
mov eax, esi
pop edi
pop ebx
pop esi
ret