Function at 0x180b7d71
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov eax, dword [0x181d600c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
and dword [ebp - 8], 0
push ebx
push esi
push edi
mov dword [ebp - 0x10], eax
mov esi, ecx
lea eax, [ebp - 8]
mov dword [ebp - 0xc], esi
push eax
push ecx
push 0x181bf660
call fcn.180b8de2
mov edi, dword [ebp - 8]
mov ebx, eax
test ebx, ebx
js 0x180b7f99
lfence
mov eax, dword [esi + 4]
mov ecx, edi
push dword [eax + 0x48]
push str.platform
call fcn.1808a3dc
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
js 0x180b7f99
lfence
mov eax, dword [esi + 4]
mov ecx, edi
push dword [eax + 0x4c]
push str.version
call fcn.1808a3dc
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
js 0x180b7f99
lfence
mov eax, dword [esi + 4]
mov ecx, edi
push dword [eax + 0x50]
push 0x181bf658
call fcn.1808a3dc
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
js 0x180b7f99
lfence
mov eax, dword [esi + 4]
mov ecx, edi
push dword [eax + 0x54]
push str.arch
call fcn.1808a3dc
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
js 0x180b7f99
mov eax, dword [esi + 4]
lea ecx, [ebp - 8]
push 0
push dword [eax + 0x58]
call fcn.18013507
mov esi, dword [ebp - 8]
mov ecx, edi
push esi
push str.product_type
call fcn.1808a3dc
add esp, 0x10
lea ecx, [esi - 0x10]
mov ebx, eax
call fcn.18006f72
test ebx, ebx
js 0x180b7f99
mov esi, dword [ebp - 0xc]
xor ecx, ecx
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x64]
cmp dword [eax - 0xc], ecx
je 0x180b7e9b
lfence
mov eax, dword [esi + 4]
mov ecx, edi
push dword [eax + 0x64]
push str.os_region_name
call fcn.1808a3dc
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
js 0x180b7f99
xor ecx, ecx
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x68]
cmp dword [eax - 0xc], ecx
je 0x180b7ec9
lfence
mov eax, dword [esi + 4]
mov ecx, edi
push dword [eax + 0x68]
push str.os_region_nation
call fcn.1808a3dc
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
js 0x180b7f99
xor ecx, ecx
mov ebx, dword [esi + 4]
mov edx, 0x181b1998
mov eax, dword [ebx + 0x64]
cmp dword [eax - 0xc], ecx
jne 0x180b7ee1
mov eax, dword [ebx + 0x68]
cmp dword [eax - 0xc], ecx
je 0x180b7f0a
cmp byte [ebx + 0x6c], 0
jne 0x180b7eec
mov edx, 0x181a72f0
push edx
push str.os_region_dma
mov ecx, edi
call fcn.1808a3dc
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
js 0x180b7f99
mov edx, 0x181b1998
mov eax, dword [esi + 4]
cmp byte [eax + 0x5c], 0
jne 0x180b7f18
mov edx, 0x181a72f0
push edx
push str.is_wip
mov ecx, edi
call fcn.1808a3dc
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
js 0x180b7f99
mov eax, dword [esi + 4]
cmp byte [eax + 0x5c], 0
je 0x180b7f53
lfence
mov eax, dword [esi + 4]
mov ecx, edi
push dword [eax + 0x60]
push str.wip_branch
call fcn.1808a3dc
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
js 0x180b7f99
mov eax, dword [esi + 4]
cmp byte [eax + 0x6d], 0
mov eax, 0x181b1998
jne 0x180b7f66
mov eax, 0x181a72f0
push eax
push str.is_in_lockdown_mode
mov ecx, edi
call fcn.1808a3dc
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
js 0x180b7f99
mov ecx, dword [ebp - 0x10]
push 0
push edi
push ecx
mov eax, dword [ecx]
mov esi, dword [eax + 0x54]
mov ecx, esi
call dword [0x181663e8]
call esi
mov ebx, eax
test ebx, ebx
js 0x180b7f99
xor ebx, ebx
test edi, edi
je 0x180b7fad
mov ecx, dword [edi]
push edi
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x181663e8]
call esi
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.18121ed8
leave
ret 4