Function at 0x100bf760
Capabilities:
Get geographical location

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100fff80
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x8d0
mov eax, dword [0x1013c014]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x868], esi
push ecx
mov byte [esi + 0x55], 0
call fcn.100c0c90
push 6
push dword [esi + 4]
call dword [sym.imp.UxTheme.dll_EnableThemeDialogTexture]
push 0x3ec
push dword [esi + 4]
call dword [sym.imp.USER32.dll_GetDlgItem]
mov edi, eax
mov dword [ebp - 0x874], edi
call dword [sym.imp.UxTheme.dll_IsAppThemed]
test eax, eax
je 0x100bf7ec
push 0
push str.Explorer
push edi
call dword [sym.imp.UxTheme.dll_SetWindowTheme]
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
push 0x5a
push esi
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push esi
push 0
mov dword [ebp - 0x86c], eax
call dword [sym.imp.USER32.dll_ReleaseDC]
cmp dword [ebp - 0x86c], 0x90
mov eax, 0x19
mov esi, dword [ebp - 0x868]
setge cl
push 0
push 0
mov byte [esi + 0x54], cl
mov ecx, 0x2019
jl 0x100bf858
cmp byte [0x10158d38], 0
cmovne eax, ecx
push eax
push 0x10
push 0x20
call dword [sym.imp.COMCTL32.dll_ImageList_Create]
push 0x2000
push 0
push 0
push 0
push 0x6c
jmp 0x100bf87a
cmp byte [0x10158d38], 0
cmovne eax, ecx
push eax
push 0xb
push 0x18
call dword [sym.imp.COMCTL32.dll_ImageList_Create]
push 0x2000
push 0
push 0
push 0
push 0x6d
mov dword [esi + 0x50], eax
push dword [0x1014a878]
call dword [sym.imp.USER32.dll_LoadImageW]
push 0xff00ff
push eax
push dword [esi + 0x50]
mov dword [ebp - 0x864], eax
call dword [sym.imp.COMCTL32.dll_ImageList_AddMasked]
push dword [ebp - 0x864]
call dword [sym.imp.GDI32.dll_DeleteObject]
push dword [esi + 0x50]
push 1
push 0x1003
push edi
call dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [ebp - 0x830]
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowRect]
push 0x10000
push 0x10000
push 0x1036
push edi
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp - 0x828]
xorps xmm0, xmm0
sub eax, dword [ebp - 0x830]
mov dword [ebp - 0x898], eax
lea eax, [ebp - 0x8a0]
push eax
push 0
push 0x1061
push edi
mov dword [ebp - 0x8a0], 2
mov dword [ebp - 0x89c], 0
movups xmmword [ebp - 0x894], xmm0
movups xmmword [ebp - 0x884], xmm0
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x1010ca30
push 0x40b
push dword [esi + 4]
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
add esi, 0x58
push esi
push ecx
mov ecx, esi
call fcn.100c0e00
push 0xc8
lea eax, [ebp - 0xe0]
push 0
push eax
call fcn.100d6eb0
add esp, 0xc
mov dword [ebp - 0x864], 0
lea eax, [ebp - 0x86c]
mov dword [ebp - 0x86c], 0x64
push eax
lea eax, [ebp - 0xe0]
push eax
lea eax, [ebp - 0x864]
push eax
push 4
call dword [sym.imp.KERNEL32.dll_GetUserPreferredUILanguages]
push 0x10
lea eax, [ebp - 0x870]
push eax
lea eax, [ebp - 0xe0]
push eax
call fcn.100df941
mov ecx, dword [esi]
xor edx, edx
add esp, 0xc
xor edi, edi
mov dword [ecx + 4], eax
mov eax, dword [esi]
mov dword [eax + 8], 0xfffffffe
mov eax, 0x1010c968
sub eax, 4
mov dword [ebp - 0x864], edx
mov dword [ebp - 0x86c], eax
nop
test edx, edx
jle 0x100bf9e5
mov ecx, dword [eax]
mov eax, dword [esi]
mov dword [edi + eax + 4], ecx
lea ecx, [edx - 1]
mov eax, dword [esi]
mov dword [edi + eax + 8], ecx
push 0x100
lea eax, [ebp - 0x620]
push eax
mov eax, dword [esi]
push 0x5c
push dword [edi + eax + 4]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
mov edx, dword [esi]
lea eax, [ebp - 0x620]
lea ecx, [eax + 2]
add edx, edi
mov dword [ebp - 0x870], ecx
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x100bfa12
sub eax, dword [ebp - 0x870]
mov ecx, edx
sar eax, 1
push eax
lea eax, [ebp - 0x620]
push eax
call fcn.10021eb0
mov eax, dword [ebp - 0x86c]
add edi, 0xc
mov edx, dword [ebp - 0x864]
add eax, 4
inc edx
mov dword [ebp - 0x86c], eax
mov dword [ebp - 0x864], edx
cmp eax, 0x1010ca04
jle 0x100bf9d0
mov edi, dword [ebp - 0x868]
mov eax, dword [esi]
add eax, 0xc
mov dword [ebp - 0x870], eax
mov esi, dword [edi + 0x5c]
push dword [ebp - 0x870]
mov ecx, dword [ebp - 0x870]
sub esi, eax
mov eax, 0x2aaaaaab
imul esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [edi + 0x5c]
push eax
call fcn.100c1440
push 0x38
lea eax, [ebp - 0x8d8]
mov dword [ebp - 0x8dc], 3
push 0
push eax
call fcn.100d6eb0
mov ecx, dword [edi + 0x5c]
mov eax, 0x2aaaaaab
sub ecx, dword [edi + 0x58]
xor esi, esi
mov edi, dword [ebp - 0x874]
add esp, 0x14
imul ecx
mov dword [ebp - 0x864], esi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
test eax, eax
jle 0x100bfc22
mov ecx, dword [ebp - 0x868]
lea eax, [ebp - 0x820]
push 0x100
push eax
lea esi, [esi + esi*2]
mov eax, dword [ecx + 0x58]
shl esi, 2
push 2
mov dword [ebp - 0x86c], esi
push dword [esi + eax + 4]
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
cmp dword [ebp - 0x864], 0
jne 0x100bfb83
mov eax, dword [ebp - 0x868]
lea ecx, [ebp - 0x870]
mov edx, 0xfd2
mov esi, dword [eax + 0x58]
mov esi, dword [esi]
call fcn.100aedf0
push esi
push dword [eax]
lea eax, [ebp - 0x218]
push str._s___s_
push 0x100
push eax
call fcn.100a4830
mov edx, dword [ebp - 0x870]
add esp, 0x14
add edx, 0xfffffff0
mov dword [ebp - 4], 0
or eax, 0xffffffff
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100bfb74
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x86c]
jmp 0x100bfbaf
lea eax, [ebp - 0x820]
push eax
mov eax, dword [ebp - 0x868]
mov eax, dword [eax + 0x58]
push dword [esi + eax]
lea eax, [ebp - 0x218]
push str._s____s
push 0x100
push eax
call fcn.100a4830
add esp, 0x14
mov eax, dword [ebp - 0x864]
mov dword [ebp - 0x8d8], eax
mov eax, dword [ebp - 0x868]
mov eax, dword [eax + 0x58]
mov eax, dword [esi + eax + 8]
mov dword [ebp - 0x8c0], eax
lea eax, [ebp - 0x218]
mov dword [ebp - 0x8c8], eax
lea eax, [ebp - 0x8dc]
push eax
push 0
push 0x104d
push edi
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [ebp - 0x868]
mov esi, dword [ebp - 0x864]
inc esi
mov dword [ebp - 0x864], esi
mov eax, dword [ecx + 0x58]
mov ecx, dword [ecx + 0x5c]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jl 0x100bfae2
push 0x1a0
lea eax, [ebp - 0x3b8]
mov ecx, 0x1a
mov esi, str._ALLUSERSPROFILE_360WallPaperOpenShellupdate.ver
lea edi, [ebp - 0x420]
push 0
rep movsd dword es:[edi], dword [esi]
push eax
call fcn.100d6eb0
add esp, 0xc
lea eax, [ebp - 0x420]
push 0x104
push eax
call dword [sym.imp.SHELL32.dll_DoEnvironmentSubstW]
push ecx
lea eax, [ebp - 0x420]
mov ecx, 0x10158ab0
push eax
call fcn.100c5b90
mov edi, dword [ebp - 0x868]
test eax, eax
mov ecx, edi
sete byte [0x10158ab0]
call fcn.100bf300
mov edx, dword [0x1013c958]
mov esi, dword [0x1013c950]
sub edx, esi
mov eax, dword [0x1013c954]
mov ecx, dword [0x1013c94c]
sub eax, ecx
push 0
push dword [0x1014a874]
push 0
push dword [edi + 4]
push edx
push eax
push esi
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
push 0
push str.tooltips_class32
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov edx, eax
mov dword [ebp - 0x860], 0x30
mov eax, dword [ebp - 0x874]
xorps xmm0, xmm0
mov dword [ebp - 0x854], eax
lea eax, [ebp - 0x860]
push eax
push 0
push 0x432
mov dword [edi + 0x4c], edx
mov ecx, dword [edi + 4]
movups xmmword [ebp - 0x840], xmm0
push edx
mov dword [ebp - 0x85c], 0x11
mov dword [ebp - 0x858], ecx
movups xmmword [ebp - 0x850], xmm0
mov dword [ebp - 0x83c], 0x1010ca30
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100d4906
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x10