Function at 0x42c560
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x613491
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push esi
push edi
mov eax, dword [0x6b1a94]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x1c], edi
mov dword [ebp - 4], 0
mov dword [ebp - 0x14], 0
call fcn.00403fe0
mov ecx, eax
test ecx, ecx
jne 0x42c5b0
push 0x80004005
call fcn.00403d40
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x10], eax
mov dword [ebp - 4], 1
mov eax, dword [0x6c5344]
test eax, eax
jne 0x42c5f2
call fcn.0047f7d0
mov esi, dword [0x6c27cc]
call fcn.0047f7d0
xor ecx, ecx
lea eax, [esi + esi*4]
cmp dword [0x6c27c8], ecx
setne cl
inc ecx
lea eax, [ecx + eax*2]
mov dword [0x6c5344], eax
push eax
lea eax, [ebp - 0x10]
push 0x67c158
push eax
call fcn.00403390
mov byte [edi + 8], 0
add esp, 0xc
and dword [edi + 8], 0xfffffeff
mov dword [edi + 0xc], 0
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x14], 1
call fcn.0046ef90
mov esi, eax
push ecx
push str.product
mov ecx, edi
mov byte [ebp - 4], 3
call fcn.0047a3f0
mov edx, eax
mov ecx, esi
call fcn.004790a0
mov byte [ebp - 4], 1
or ebx, 0xffffffff
mov edx, dword [ebp - 0x18]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x42c662
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
push 0x67a170
mov ecx, edi
call fcn.0047a3f0
mov edx, eax
mov ecx, str.windows
call fcn.00479180
lea ecx, [ebp - 0x18]
call fcn.0046e6c0
mov esi, eax
push ecx
push str.device_id
mov ecx, edi
mov byte [ebp - 4], 4
call fcn.0047a3f0
mov edx, eax
mov ecx, esi
call fcn.004790a0
mov byte [ebp - 4], 1
mov eax, ebx
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x42c6bd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x18]
call fcn.0046f0e0
mov esi, eax
push ecx
push str.version
mov ecx, edi
mov byte [ebp - 4], 5
call fcn.0047a3f0
mov edx, eax
mov ecx, esi
call fcn.004790a0
mov byte [ebp - 4], 1
mov eax, ebx
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x42c6ff
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
push 0x67c918
mov ecx, edi
call fcn.0047a3f0
push ecx
mov ecx, esp
mov esi, eax
push 0x678c3c
call fcn.00407490
lea ecx, [ebp - 0x18]
call fcn.0046f1b0
add esp, 4
mov edx, esi
mov byte [ebp - 4], 6
mov ecx, eax
call fcn.004790a0
mov byte [ebp - 4], 1
mov eax, ebx
mov edx, dword [ebp - 0x18]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x42c751
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push ecx
push str.os_ver
mov ecx, edi
call fcn.0047a3f0
mov edx, eax
lea ecx, [ebp - 0x10]
call fcn.004790a0
push ecx
push str.country_code
mov ecx, edi
call fcn.0047a3f0
mov edx, eax
mov ecx, 0x67c934
call fcn.00479180
mov byte [ebp - 4], 0
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x42c79d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret