Function at 0x1400d6c80
Capabilities:
Get geographical location

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xa0]
sub rsp, 0x1a0
mov qword [rbp - 0x78], 0xfffffffffffffffe
mov qword [rsp + 0x1f0], rbx
mov rax, qword [0x1403b8c08]
xor rax, rsp
mov qword [rbp + 0x90], rax
mov r14, rcx
mov qword [rsp + 0x70], rcx
mov dword [rsp + 0x30], 0
mov rcx, qword [rdx]
call fcn.1400e0e20
mov rbx, rax
mov qword [rsp + 0x68], rax
test rax, rax
jne 0x1400d6ce6
jmp 0x1400d75dd
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp + 0x20], xmm0
mov byte [rbp + 0x10], 0
mov r8d, 5
lea rdx, str.errno
lea rcx, [rbp + 0x10]
call fcn.14000c230
nop
mov rdi, 0xffffffffffffffff
mov r8d, edi
lea rdx, [rbp + 0x10]
mov rcx, rbx
call fcn.1400e2380
mov esi, eax
mov rdx, qword [rbp + 0x28]
cmp rdx, 0x10
jb 0x1400d6d61
inc rdx
mov rcx, qword [rbp + 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400d6d5c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400d7611
call fcn.140171af0
test esi, esi
je 0x1400d6d6d
mov rcx, rbx
jmp 0x1400d75d8
lea rdx, [0x1402eb968]
mov rcx, rbx
call fcn.1400e0d50
mov r15, rax
test rax, rax
je 0x1400d6d65
call fcn.14000b190
mov rcx, rax
test rax, rax
je 0x1400d7617
mov rax, qword [rax]
call qword [rax + SafeArrayCopy]
add rax, 0x18
mov qword [rsp + 0x38], rax
lea rbx, [0x1402ec198]
cmp rbx, 0x10000
jae 0x1400d6dc3
movzx edx, bx
lea rcx, [rsp + 0x38]
call fcn.14000b690
jmp 0x1400d6de1
mov rax, rdi
inc rax
cmp word [rbx + rax*2], 0
jne 0x1400d6dc6
mov r8d, eax
mov rdx, rbx
lea rcx, [rsp + 0x38]
call fcn.140010860
nop
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp - 0x60], xmm0
mov byte [rbp - 0x70], 0
mov r8d, 7
lea rdx, str.weather
lea rcx, [rbp - 0x70]
call fcn.14000c230
nop
mov dword [rsp + 0x20], 0xfde9
lea r9, [rsp + 0x38]
lea r8, [rbp - 0x70]
mov rdx, r15
lea rcx, [rsp + 0x58]
call fcn.1400e2490
nop
mov rdx, qword [rbp - 0x58]
cmp rdx, 0x10
jb 0x1400d6e63
inc rdx
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400d6e5e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400d7622
call fcn.140171af0
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp - 0x60], xmm0
mov byte [rbp - 0x70], 0
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400d6e92
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rsp + 0x58]
cmp dword [rax - 0x10], 0
jne 0x1400d6ebd
lea rdx, [rax - 0x18]
lock xadd dword [rdx + 0x10], edi
sub edi, 1
jg 0x1400d75d3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x1400d75d3
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp + 0x40], xmm0
mov byte [rbp + 0x30], 0
mov r8d, 8
lea rdx, str.temp_min
lea rcx, [rbp + 0x30]
call fcn.14000c230
nop
xor r8d, r8d
lea rdx, [rbp + 0x30]
mov rcx, r15
call fcn.1400e2380
mov r13d, eax
mov rdx, qword [rbp + 0x48]
cmp rdx, 0x10
jb 0x1400d6f32
inc rdx
mov rcx, qword [rbp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400d6f2d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400d7628
call fcn.140171af0
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp + 0x60], xmm0
mov byte [rbp + 0x50], 0
mov r8d, 8
lea rdx, str.temp_max
lea rcx, [rbp + 0x50]
call fcn.14000c230
nop
xor r8d, r8d
lea rdx, [rbp + 0x50]
mov rcx, r15
call fcn.1400e2380
mov r12d, eax
mov rdx, qword [rbp + 0x68]
cmp rdx, 0x10
jb 0x1400d6fa7
inc rdx
mov rcx, qword [rbp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400d6fa2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400d762e
call fcn.140171af0
call fcn.14000b190
mov rcx, rax
test rax, rax
je 0x1400d7634
mov rax, qword [rax]
call qword [rax + SafeArrayCopy]
add rax, 0x18
mov qword [rsp + 0x40], rax
cmp rbx, 0x10000
jae 0x1400d6fdf
movzx edx, bx
lea rcx, [rsp + 0x40]
call fcn.14000b690
jmp 0x1400d6ffd
mov rax, rdi
inc rax
cmp word [rbx + rax*2], 0
jne 0x1400d6fe2
mov r8d, eax
mov rdx, rbx
lea rcx, [rsp + 0x40]
call fcn.140010860
nop
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp - 0x40], xmm0
mov byte [rbp - 0x50], 0
mov r8d, listen
lea rdx, str.weather_pic
lea rcx, [rbp - 0x50]
call fcn.14000c230
nop
mov dword [rsp + 0x20], 0xfde9
lea r9, [rsp + 0x40]
lea r8, [rbp - 0x50]
mov rdx, r15
lea rcx, [rsp + 0x60]
call fcn.1400e2490
nop
mov rdx, qword [rbp - 0x38]
cmp rdx, 0x10
jb 0x1400d707f
inc rdx
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400d707a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400d763f
call fcn.140171af0
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp - 0x40], xmm0
mov byte [rbp - 0x50], 0
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400d70ae
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rsp + 0x60]
cmp dword [rax - 0x10], 0
jne 0x1400d70f8
lea rdx, [rax - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400d70d3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], edi
sub edi, 1
jg 0x1400d75d3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x1400d75d3
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp + 0x80], xmm0
mov byte [rbp + 0x70], 0
mov r8d, 8
lea rdx, str.cityCode
lea rcx, [rbp + 0x70]
call fcn.14000c230
nop
mov r8d, edi
lea rdx, [rbp + 0x70]
mov rcx, r15
call fcn.1400e2380
mov ebx, eax
mov rdx, qword [rbp + 0x88]
cmp rdx, 0x10
jb 0x1400d7172
inc rdx
mov rcx, qword [rbp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400d716d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400d7645
call fcn.140171af0
cmp ebx, 0xffffffff
je 0x1400d718a
lea rcx, [r14 + 0x10]
mov r8d, ebx
lea rdx, [0x1402f6018]
call fcn.14000b080
lea rsi, [r14 + 0x40]
mov rdx, qword [rsp + 0x58]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsi]
sub rbx, 0x18
cmp rcx, rbx
je 0x1400d71ec
cmp dword [rbx + 0x10], 0
jl 0x1400d71e0
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x1400d71e0
call fcn.14000ae30
mov r14, rax
mov ecx, edi
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x1400d71d2
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [r14 + 0x18]
mov qword [rsi], rax
mov r14, qword [rsp + 0x70]
jmp 0x1400d71ec
mov r8d, dword [rdx - 0x10]
mov rcx, rsi
call fcn.140010860
lea rcx, [r14 + 0x48]
mov r9d, r12d
mov r8d, r13d
lea rdx, str._d_d
call fcn.14000b080
lea rsi, [r14 + 0x50]
mov rdx, qword [rsp + 0x60]
lea rcx, [rdx - 0x18]
mov rbx, qword [rsi]
sub rbx, 0x18
cmp rcx, rbx
je 0x1400d725f
cmp dword [rbx + 0x10], 0
jl 0x1400d7253
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x1400d7253
call fcn.14000ae30
mov r14, rax
mov ecx, edi
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x1400d724a
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [r14 + 0x18]
mov qword [rsi], rax
jmp 0x1400d725f
mov r8d, dword [rdx - 0x10]
mov rcx, rsi
call fcn.140010860
mov dword [rsp + 0x30], 1
lea rdx, str.addr
mov rcx, r15
call fcn.1400e0d50
mov r14, rax
test rax, rax
je 0x1400d7596
call fcn.14000b190
mov rcx, rax
test rax, rax
je 0x1400d764b
mov rax, qword [rax]
call qword [rax + SafeArrayCopy]
add rax, 0x18
mov qword [rsp + 0x48], rax
lea r12, [0x1402ec198]
cmp r12, 0x10000
jae 0x1400d72c2
movzx edx, r12w
lea rcx, [rsp + 0x48]
call fcn.14000b690
jmp 0x1400d72e1
mov rax, rdi
inc rax
cmp word [r12 + rax*2], 0
jne 0x1400d72c5
mov r8d, eax
mov rdx, r12
lea rcx, [rsp + 0x48]
call fcn.140010860
nop
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp - 0x20], xmm0
mov byte [rbp - 0x30], 0
mov r8d, 8
lea rdx, str.province
lea rcx, [rbp - 0x30]
call fcn.14000c230
nop
mov dword [rsp + 0x20], 0xfde9
lea r9, [rsp + 0x48]
lea r8, [rbp - 0x30]
mov rdx, r14
lea rcx, [rsp + 0x78]
call fcn.1400e2490
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov r15, qword [rsp + 0x70]
mov rbx, qword [r15]
sub rbx, 0x18
cmp rcx, rbx
je 0x1400d7385
cmp dword [rbx + 0x10], 0
jl 0x1400d7378
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x1400d7378
call fcn.14000ae30
mov rsi, rax
mov ecx, edi
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x1400d736f
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rsi + 0x18]
mov qword [r15], rax
jmp 0x1400d7385
mov r8d, dword [rdx - 0x10]
mov rcx, r15
call fcn.140010860
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400d73a4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x1400d73df
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400d73da
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400d7656
call fcn.140171af0
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp - 0x20], xmm0
mov byte [rbp - 0x30], 0
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400d740e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
call fcn.14000b190
mov rcx, rax
test rax, rax
je 0x1400d765c
mov rax, qword [rax]
call qword [rax + SafeArrayCopy]
add rax, 0x18
mov qword [rsp + 0x50], rax
cmp r12, 0x10000
jae 0x1400d7447
movzx edx, r12w
lea rcx, [rsp + 0x50]
call fcn.14000b690
jmp 0x1400d746c
mov rax, rdi
nop word [rax + rax]
inc rax
cmp word [r12 + rax*2], 0
jne 0x1400d7450
mov r8d, eax
mov rdx, r12
lea rcx, [rsp + 0x50]
call fcn.140010860
nop
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp], xmm0
mov byte [rbp - 0x10], 0
mov r8d, 4
lea rdx, str.city
lea rcx, [rbp - 0x10]
call fcn.14000c230
nop
mov dword [rsp + 0x20], 0xfde9
lea r9, [rsp + 0x50]
lea r8, [rbp - 0x10]
mov rdx, r14
lea rcx, [rbp - 0x80]
call fcn.1400e2490
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [r15 + 8]
sub rbx, 0x18
cmp rcx, rbx
je 0x1400d750d
cmp dword [rbx + 0x10], 0
jl 0x1400d74ff
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x1400d74ff
call fcn.14000ae30
mov r14, rax
mov ecx, edi
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x1400d74f5
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [r14 + 0x18]
mov qword [r15 + 8], rax
jmp 0x1400d750d
mov r8d, dword [rdx - 0x10]
lea rcx, [r15 + 8]
call fcn.140010860
nop
mov rdx, qword [rbp - 0x80]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400d752b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 8]
cmp rdx, 0x10
jb 0x1400d7566
inc rdx
mov rcx, qword [rbp - 0x10]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400d7561
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400d760b
call fcn.140171af0
movdqa xmm0, xmmword [0x1402eb9c0]
movdqu xmmword [rbp], xmm0
mov byte [rbp - 0x10], 0
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400d7596
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400d75b5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], edi
sub edi, 1
jg 0x1400d75d3
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
nop
mov rcx, qword [rsp + 0x68]
call fcn.1400e0c40
mov eax, dword [rsp + 0x30]
mov rcx, qword [rbp + 0x90]
xor rcx, rsp
call fcn.140172190
mov rbx, qword [rsp + 0x1f0]
add rsp, 0x1a0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.14028c66c
nop
call fcn.14028c66c
int3
mov ecx, 0x80004005
call fcn.14000adf0
nop
call fcn.14028c66c
nop
call fcn.14028c66c
int3
call fcn.14028c66c
int3
mov ecx, 0x80004005
call fcn.14000adf0
nop
call fcn.14028c66c
nop
call fcn.14028c66c
int3
mov ecx, 0x80004005
call fcn.14000adf0
nop
call fcn.14028c66c
nop
mov ecx, 0x80004005
call fcn.14000adf0
int3