Function at 0x10096377
Capabilities:
Get geographical location

Disassembly:
push 0x6c
mov eax, 0x10057aa6
call fcn.10034165
mov dword [ebp - 0x78], edx
mov esi, ecx
movaps xmm0, xmmword [0x10026310]
lea edi, [ebp - 0x24]
xor eax, eax
stosd dword es:[edi], eax
movups xmmword [ebp - 0x34], xmm0
xorps xmm0, xmm0
stosd dword es:[edi], eax
movups xmmword [ebp - 0x44], xmm0
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
xor ebx, ebx
lea ecx, [ebp - 0x58]
mov edi, 0x100c6948
mov dword [ebp - 0x70], ebx
push edi
mov dword [ebp - 4], ebx
call fcn.100599f4
mov dword [ebp - 4], 1
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x68], ebx
push 2
pop eax
push edi
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], al
call fcn.100599f4
push edi
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 4
call fcn.100599f4
mov byte [ebp - 4], 5
test esi, esi
jne 0x100963f6
mov edi, 0x80070057
jmp 0x1009686f
mov ecx, esi
call fcn.1005c4f9
push eax
push esi
lea ecx, [ebp - 0x58]
call fcn.1005c42b
mov esi, dword [ebp - 0x58]
cmp dword [esi - 0xc], ebx
je 0x100963ec
mov ecx, dword [0x100c69ec]
test ecx, ecx
je 0x10096488
push 2
lea edx, [ecx + 2]
pop edi
mov ax, word [ecx]
add ecx, edi
cmp ax, bx
jne 0x1009641f
sub ecx, edx
sar ecx, 1
push 2
pop edx
lea edi, [ecx + 1]
xor ecx, ecx
mov eax, edi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10032e06
mov ebx, eax
mov dword [ebp - 0x60], ebx
pop ecx
test ebx, ebx
jne 0x1009645a
mov edi, 0x8007000e
jmp 0x1009686d
lea eax, [edi + edi]
push eax
xor eax, eax
push eax
push ebx
call sub.msvcrt.dll_memset
add esp, 0xc
mov edx, edi
mov ecx, ebx
push dword [0x100c69ec]
call fcn.100628a8
mov edi, eax
test edi, edi
js 0x10096865
jmp 0x10096518
push ebx
push ebx
push 0x1f
push ebx
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoEx]
mov ebx, eax
test ebx, ebx
jne 0x100964b6
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x100964b0
movzx edi, di
or edi, 0x80070000
test edi, edi
js 0x1009686d
xor ecx, ecx
mov eax, ebx
push 2
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10032e06
mov edi, eax
mov dword [ebp - 0x60], edi
pop ecx
test edi, edi
je 0x10096450
lea eax, [ebx + ebx]
push eax
xor eax, eax
push eax
push edi
call sub.msvcrt.dll_memset
add esp, 0xc
xor eax, eax
push ebx
push edi
push 0x1f
push eax
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoEx]
test eax, eax
jne 0x1009651b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x10096512
movzx edi, di
or edi, 0x80070000
test edi, edi
js 0x10096862
mov edi, dword [ebp - 0x60]
mov ecx, edi
call fcn.1005c4f9
push eax
push edi
lea ecx, [ebp - 0x48]
call fcn.1005c42b
xor eax, eax
push eax
push 0x27
pop ebx
jmp 0x10096557
cmp edi, dword [ecx - 0xc]
jge 0x10096569
push ecx
push edi
lea ecx, [ebp - 0x48]
call fcn.10048628
cmp edi, eax
jge 0x10096556
push edi
lea ecx, [ebp - 0x48]
call fcn.10092fb6
cmp ax, bx
jne 0x10096556
inc edi
push edi
push ebx
lea ecx, [ebp - 0x48]
call fcn.10096a09
mov ecx, dword [ebp - 0x48]
mov edi, eax
test edi, edi
jns 0x10096534
push dword [ecx - 0xc]
lea ecx, [ebp - 0x58]
push 0x20
call fcn.10096a09
mov ebx, eax
test ebx, ebx
jns 0x10096586
mov edi, 0x80070057
jmp 0x10096859
lea eax, [ebp - 0x64]
xor edx, edx
push eax
push ebx
mov ecx, esi
call fcn.1009200f
mov edi, eax
test edi, edi
js 0x10096859
lea eax, [ebp - 0x68]
mov ecx, esi
push eax
push dword [esi - 0xc]
lea edx, [ebx + 1]
call fcn.1009200f
mov edi, eax
test edi, edi
js 0x10096859
lea ecx, [ebp - 0x48]
call fcn.10096d64
lea ecx, [ebp - 0x48]
call fcn.1007f2f9
mov ecx, eax
call fcn.1007f28f
mov eax, dword [ebp - 0x48]
xor ecx, ecx
mov ebx, ecx
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x4c], ebx
mov edi, ecx
cmp dword [eax - 0xc], ecx
jle 0x100966b3
lea esi, [ebp - 0x24]
mov dword [ebp - 0x54], esi
push edi
lea ecx, [ebp - 0x48]
call fcn.10092fb6
push 0x64
movzx ecx, ax
pop edx
cmp cx, dx
je 0x10096772
push 0x6d
pop edx
cmp cx, dx
je 0x10096746
push 0x79
pop ecx
cmp ax, cx
je 0x1009667d
mov ebx, edi
push ebx
lea ecx, [ebp - 0x48]
mov edi, ebx
call fcn.10092fb6
mov word [esi], ax
push 2
pop eax
add esi, eax
mov eax, dword [ebp - 0x48]
inc ebx
cmp ebx, dword [eax - 0xc]
jge 0x1009666b
push ebx
lea ecx, [ebp - 0x48]
call fcn.10092fb6
push 0x79
pop ecx
cmp ax, cx
je 0x1009666b
push ebx
lea ecx, [ebp - 0x48]
call fcn.10092fb6
push 0x6d
pop ecx
cmp ax, cx
je 0x1009666b
push ebx
lea ecx, [ebp - 0x48]
call fcn.10092fb6
push 0x64
pop ecx
cmp ax, cx
jne 0x1009661c
mov ebx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x54]
inc ebx
add esi, 6
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x54], esi
jmp 0x100966a3
mov dword [ebp - 0x34], ebx
lea ebx, [edi + 1]
jmp 0x10096698
push ebx
lea ecx, [ebp - 0x48]
call fcn.10092fb6
push 0x79
pop ecx
cmp ax, cx
jne 0x100966a0
inc edi
inc ebx
mov eax, dword [ebp - 0x48]
cmp ebx, dword [eax - 0xc]
jl 0x10096685
mov ebx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x48]
inc edi
mov dword [ebp - 0x5c], edi
cmp edi, dword [eax - 0xc]
jl 0x100965ee
mov edi, dword [ebp - 0x64]
mov ecx, edi
call fcn.1005c4f9
push eax
push edi
lea ecx, [ebp - 0x50]
call fcn.1005c42b
lea ecx, [ebp - 0x50]
call fcn.10096d64
mov ecx, eax
call fcn.1007f2f9
mov ecx, eax
call fcn.1007f28f
mov ecx, dword [ebp - 0x50]
xor eax, eax
mov ebx, eax
mov edi, eax
lea eax, [ebp - 0x44]
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x24]
mov dword [ebp - 0x4c], eax
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0x54], edx
cmp edi, edx
jge 0x100967e5
mov ebx, eax
lea eax, [ebx + 2]
mov dword [ebp - 0x74], eax
mov ax, word [ebx]
add ebx, 2
cmp ax, word [ebp - 0x70]
jne 0x1009670b
sub ebx, dword [ebp - 0x74]
sar ebx, 1
je 0x100967c2
push edi
push dword [ebp - 0x4c]
lea ecx, [ebp - 0x50]
call fcn.100959eb
mov ecx, dword [ebp - 0x50]
mov edx, eax
mov dword [ebp - 0x54], edx
test edx, edx
jns 0x100967be
mov edx, dword [ecx - 0xc]
mov dword [ebp - 0x54], edx
jmp 0x100967c2
mov dword [ebp - 0x30], ebx
lea ebx, [edi + 1]
jmp 0x10096765
push ebx
lea ecx, [ebp - 0x48]
call fcn.10092fb6
push 0x6d
pop ecx
cmp ax, cx
jne 0x100966a0
inc edi
inc ebx
mov eax, dword [ebp - 0x48]
cmp ebx, dword [eax - 0xc]
jl 0x1009674e
jmp 0x100966a0
mov eax, dword [ebp - 0x48]
lea ebx, [edi + 1]
xor esi, esi
inc esi
cmp ebx, dword [eax - 0xc]
jge 0x100967ad
push 0x64
pop edi
push ebx
lea ecx, [ebp - 0x48]
call fcn.10092fb6
cmp ax, di
jne 0x1009679b
mov eax, dword [ebp - 0x48]
inc esi
inc ebx
cmp ebx, dword [eax - 0xc]
jl 0x10096783
mov edi, dword [ebp - 0x5c]
push 2
pop eax
cmp esi, eax
jle 0x100967ad
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x28], ebx
jmp 0x100967b3
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x2c], ebx
dec esi
add edi, esi
mov esi, dword [ebp - 0x54]
jmp 0x100966a3
add dword [ebp - 0x4c], 6
push dword [ebp - 0x5c]
push edx
mov edx, edi
call fcn.1009200f
mov edi, eax
test edi, edi
js 0x10096859
mov edi, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x50]
add edi, ebx
mov eax, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x6c]
add dword [ebp - 0x5c], 4
inc ebx
mov dword [ebp - 0x6c], ebx
cmp ebx, 4
jb 0x100966f5
mov ebx, dword [ebp - 0x78]
xor eax, eax
mov edi, eax
mov eax, dword [ebp + edi*4 - 0x34]
cmp eax, 0xffffffff
je 0x10096847
push dword [ebp + eax*4 - 0x44]
call dword [sym.imp.msvcrt.dll__wtoi]
pop ecx
mov ecx, edi
xor edx, edx
sub ecx, edx
je 0x10096830
sub ecx, 1
je 0x10096829
sub ecx, 1
jne 0x10096847
mov word [ebx + 6], ax
jmp 0x1009682d
mov word [ebx + 2], ax
inc edi
jmp 0x100967fd
movzx eax, ax
mov ecx, 0x7d0
mov word [ebx], ax
cmp ax, cx
jae 0x10096847
add eax, ecx
mov word [ebx], ax
jmp 0x1009682d
inc edi
cmp edi, 4
jb 0x100967fd
mov ecx, dword [ebp - 0x68]
mov edx, ebx
call fcn.10096d95
mov edi, eax
mov ebx, dword [ebp - 0x60]
test ebx, ebx
je 0x1009686d
jmp 0x10096865
mov ebx, dword [ebp - 0x60]
push ebx
call dword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void__]
pop ecx
xor ebx, ebx
xor esi, esi
cmp dword [ebp + ebx*4 - 0x44], esi
je 0x10096891
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push dword [ebp + ebx*4 - 0x44]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
test eax, eax
je 0x10096891
mov dword [ebp + ebx*4 - 0x44], esi
inc ebx
cmp ebx, 4
jb 0x10096871
mov ebx, dword [ebp - 0x64]
mov esi, dword [ebp - 0x58]
test ebx, ebx
je 0x100968b2
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push ebx
xor ecx, ecx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ebx, dword [ebp - 0x68]
test ebx, ebx
je 0x100968ca
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push ebx
xor ecx, ecx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [ebp - 0x50]
lea ecx, [ecx - 0x10]
call fcn.1005bcd8
mov ecx, dword [ebp - 0x48]
lea ecx, [ecx - 0x10]
call fcn.1005bcd8
lea ecx, [esi - 0x10]
call fcn.1005bcd8
mov eax, edi
call fcn.10034102
ret