Function at 0x40d736
Capabilities:
Get geographical location

Disassembly:
push 0xc0
mov eax, 0x4997ff
call fcn.0043525d
mov edi, edx
mov dword [ebp - 0xcc], edi
mov esi, ecx
mov dword [ebp - 0xbc], esi
xor ebx, ebx
xor eax, eax
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0x44], 7
mov dword [ebp - 0x48], ebx
mov word [ebp - 0x58], ax
push str.city
lea ecx, [ebp - 0x40]
mov dword [ebp - 4], ebx
call fcn.0040128a
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x70]
push str.HKCU
mov dword [ebp - 0xc4], 1
call fcn.0040128a
lea eax, [ebp - 0x58]
mov dword [ebp - 4], 2
push eax
lea eax, [ebp - 0x40]
mov dword [ebp - 0xc4], 3
push eax
mov edx, edi
lea ecx, [ebp - 0x70]
call fcn.0041728c
pop ecx
pop ecx
test al, al
je 0x40d7c6
cmp dword [ebp - 0x48], ebx
jne 0x40d7c8
mov bl, 1
push 0
push 1
lea ecx, [ebp - 0x70]
call fcn.004012eb
and dword [ebp - 4], 0
lea ecx, [ebp - 0x40]
push 0
push 1
call fcn.004012eb
test bl, bl
jne 0x40d88e
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
push 0x4b1a6c
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 3
call fcn.0040128a
push str.HKCU
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 4
call fcn.0040128a
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 5
push eax
lea eax, [ebp - 0x40]
mov edx, edi
push eax
lea ecx, [ebp - 0x70]
call fcn.00417369
pop ecx
pop ecx
mov bl, al
lea ecx, [ebp - 0x70]
push 0
neg bl
push 1
sbb bl, bl
call fcn.004012eb
push 0
push 1
lea ecx, [ebp - 0x40]
call fcn.004012eb
add bl, 1
jne 0x40d878
push 0
call fcn.0043d16a
pop ecx
mov ecx, eax
mov eax, dword [ebp - 0x1c]
sub ecx, dword [eax]
sbb edx, dword [eax + 4]
mov dword [ebp - 0xbc], edx
js 0x40d87a
jg 0x40d878
cmp ecx, 0x7e900
jb 0x40d87a
mov bl, 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0
call fcn.00401cd8
test bl, bl
je 0x40db0a
and dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0xf
mov byte [ebp - 0xa0], 0
push str.aHR0cDovL2t5cG9zaXRpb24uZGZ0b3V0aWFvLmNvbS9wb3NpdGlvbi9nZXQwMg
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 6
call fcn.00401b23
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 7
push ecx
mov ecx, eax
call fcn.004011ed
lea edx, [ebp - 0xa0]
lea ecx, [ebp - 0x28]
call fcn.0041674f
mov bl, al
lea ecx, [ebp - 0x28]
push 0
neg bl
push 1
sbb bl, bl
call fcn.00401450
push 0
push 1
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 6
call fcn.00401450
add bl, 1
je 0x40d926
xor ebx, ebx
mov dword [esi + 0x14], 7
push ebx
xor eax, eax
mov dword [esi + 0x10], ebx
push 1
lea ecx, [ebp - 0xa0]
mov word [esi], ax
call fcn.00401450
push ebx
jmp 0x40db17
lea edx, [ebp - 0xa0]
lea ecx, [ebp - 0x70]
call fcn.00401eac
push 8
pop ebx
push str.cityname_:_
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], bl
call fcn.0040128a
mov byte [ebp - 4], 9
lea eax, [ebp - 0x40]
cmp dword [ebp - 0x2c], ebx
lea ecx, [ebp - 0x70]
mov edi, dword [ebp - 0x30]
cmovae eax, dword [ebp - 0x40]
push edi
push 0
push eax
call fcn.0040e016
mov dword [ebp - 0xbc], eax
cmp eax, 0xffffffff
je 0x40dae3
add eax, edi
push 0x4b1ad4
mov dword [ebp - 0xc8], eax
call fcn.004010e0
pop ecx
push eax
push dword [ebp - 0xc8]
lea ecx, [ebp - 0x70]
push 0x4b1ad4
call fcn.0040e016
cmp eax, 0xffffffff
je 0x40dae3
sub eax, edi
lea ecx, [ebp - 0x70]
sub eax, dword [ebp - 0xbc]
push eax
push dword [ebp - 0xc8]
lea eax, [ebp - 0x88]
push eax
call fcn.0040dfe3
push eax
lea ecx, [ebp - 0x58]
call fcn.00401bc5
push 0
push 1
lea ecx, [ebp - 0x88]
call fcn.004012eb
cmp dword [ebp - 0x48], 0
je 0x40dae3
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
push eax
mov byte [ebp - 4], 0xa
call fcn.0043d16a
pop ecx
mov dword [ebp - 0xc0], eax
lea edi, [ebp - 0xc0]
mov dword [ebp - 0xbc], edx
push edi
lea ecx, [ebp - 0x1c]
call fcn.00403e2b
inc edi
sub ebx, 1
jne 0x40da0b
push 0x4b1a6c
lea ecx, [ebp - 0x88]
call fcn.0040128a
mov ebx, str.HKCU
mov byte [ebp - 4], 0xb
push ebx
lea ecx, [ebp - 0xb8]
call fcn.0040128a
mov edx, dword [ebp - 0xcc]
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x88]
push eax
lea ecx, [ebp - 0xb8]
call fcn.00417415
pop ecx
pop ecx
push 0
push 1
lea ecx, [ebp - 0xb8]
call fcn.004012eb
push 0
push 1
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0xa
call fcn.004012eb
push str.city
lea ecx, [ebp - 0xb8]
call fcn.0040128a
push ebx
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 0xc
call fcn.0040128a
mov edx, dword [ebp - 0xcc]
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0xb8]
push eax
lea ecx, [ebp - 0x88]
call fcn.004172ef
pop ecx
pop ecx
push 0
push 1
lea ecx, [ebp - 0x88]
call fcn.004012eb
push 0
push 1
lea ecx, [ebp - 0xb8]
call fcn.004012eb
lea ecx, [ebp - 0x1c]
call fcn.00401cd8
push 0
push 1
lea ecx, [ebp - 0x40]
call fcn.004012eb
push 0
push 1
lea ecx, [ebp - 0x70]
call fcn.004012eb
push 0
push 1
lea ecx, [ebp - 0xa0]
call fcn.00401450
lea eax, [ebp - 0x58]
mov ecx, esi
push eax
call fcn.00402097
push 0
push 1
lea ecx, [ebp - 0x58]
call fcn.004012eb
mov eax, esi
call fcn.00435207
ret