Function at 0x14003fb60
Capabilities:
Get geographical location

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0x90
movaps xmmword [rsp + 0x80], xmm6
mov rax, qword [0x1400d08c0]
xor rax, rsp
mov qword [rbp + 0x1f], rax
mov r15, r8
mov rdi, rdx
mov qword [rbp - 0x19], rdx
xor r14d, r14d
mov dword [rbp - 0x21], r14d
mov ecx, 0x28
call fcn.1400633d0
mov rcx, rax
mov qword [rbp - 0x39], rax
test rax, rax
je 0x14003fbdf
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea rax, vtable.std::_Ref_count_obj2_class_TgBot::Location_.0
mov qword [rcx], rax
xor eax, eax
movups xmmword [rcx + 0x10], xmm0
mov qword [rcx + 0x20], rax
jmp 0x14003fbe2
mov rcx, r14
lea rax, [rcx + 0x10]
mov qword [rdi], rax
mov qword [rdi + 8], rcx
mov dword [rbp - 0x21], 3
xorps xmm0, xmm0
movups xmmword [rbp - 0x11], xmm0
movdqa xmm1, xmmword [0x14008ce90]
movdqu xmmword [rbp - 1], xmm1
movsd xmm0, qword [str.longitude]
movsd qword [rbp - 0x11], xmm0
movzx eax, byte [0x14008bf58]
mov byte [rbp - 9], al
mov byte [rbp - 8], 0
mov byte [rbp + 0xf], 0x2e
lea rax, [rbp - 0x11]
mov qword [rbp + 0x17], rax
lea r8, [rbp - 0x11]
lea rdx, [rbp - 0x39]
mov rcx, r15
call fcn.1400276c0
xorps xmm6, xmm6
mov rcx, qword [rbp - 0x39]
test rcx, rcx
je 0x14003fc61
lea rdx, [rbp - 0x39]
call fcn.14002e3e0
cmp byte [rbp - 0x39], 0
je 0x14003fc61
movss xmm0, dword [rbp - 0x35]
jmp 0x14003fc64
xorps xmm0, xmm0
mov rax, qword [rdi]
movss dword [rax], xmm0
mov rdx, qword [rbp + 7]
cmp rdx, 0xf
jbe 0x14003fca6
inc rdx
mov rcx, qword [rbp - 0x11]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003fca1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004012b
call fcn.140063654
xorps xmm0, xmm0
movups xmmword [rbp - 0x11], xmm0
movdqa xmm1, xmmword [reloc.WS2_32.dll_htonl]
movdqu xmmword [rbp - 1], xmm1
movabs rax, 0x656475746974616c
mov qword [rbp - 0x11], rax
mov byte [rbp - 9], 0
mov byte [rbp + 0xf], 0x2e
lea rax, [rbp - 0x11]
mov qword [rbp + 0x17], rax
lea r8, [rbp - 0x11]
lea rdx, [rbp - 0x39]
mov rcx, r15
call fcn.1400276c0
mov rcx, qword [rbp - 0x39]
test rcx, rcx
je 0x14003fd07
lea rdx, [rbp - 0x39]
call fcn.14002e3e0
cmp byte [rbp - 0x39], 0
je 0x14003fd07
movss xmm0, dword [rbp - 0x35]
jmp 0x14003fd0a
xorps xmm0, xmm0
mov rax, qword [rdi]
movss dword [rax + 4], xmm0
mov rdx, qword [rbp + 7]
cmp rdx, 0xf
jbe 0x14003fd4d
inc rdx
mov rcx, qword [rbp - 0x11]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003fd48
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040131
call fcn.140063654
xorps xmm0, xmm0
movups xmmword [rbp - 0x11], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 1], xmm1
mov ecx, 0x20
call fcn.1400633d0
mov rcx, rax
mov qword [rbp - 0x11], rax
movdqa xmm0, xmmword [0x14008cf30]
movdqu xmmword [rbp - 1], xmm0
movups xmm0, xmmword [str.horizontal_accuracy]
movups xmmword [rax], xmm0
movzx eax, word [0x14008bf70]
mov word [rcx + 0x10], ax
movzx eax, byte [0x14008bf72]
mov byte [rcx + 0x12], al
mov byte [rcx + 0x13], 0
mov byte [rbp + 0xf], 0x2e
mov qword [rbp + 0x17], rcx
lea r8, [rbp - 0x11]
lea rdx, [rbp - 0x39]
mov rcx, r15
call fcn.1400276c0
mov rcx, qword [rbp - 0x39]
test rcx, rcx
je 0x14003fdd2
lea rdx, [rbp - 0x39]
call fcn.14002e3e0
cmp byte [rbp - 0x39], 0
je 0x14003fdd2
movss xmm6, dword [rbp - 0x35]
mov rax, qword [rdi]
movss dword [rax + 8], xmm6
mov rdx, qword [rbp + 7]
cmp rdx, 0xf
jbe 0x14003fe15
inc rdx
mov rcx, qword [rbp - 0x11]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003fe10
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040137
call fcn.140063654
xorps xmm0, xmm0
movups xmmword [rbp - 0x11], xmm0
movdqa xmm1, xmmword [0x14008ceb0]
movdqu xmmword [rbp - 1], xmm1
movsd xmm0, qword [str.live_period]
movsd qword [rbp - 0x11], xmm0
movzx eax, word [0x14008bf80]
mov word [rbp - 9], ax
movzx eax, byte [0x14008bf82]
mov byte [rbp - 7], al
mov byte [rbp - 6], 0
mov byte [rbp + 0xf], 0x2e
lea rax, [rbp - 0x11]
mov qword [rbp + 0x17], rax
lea r8, [rbp - 0x11]
lea rdx, [rbp - 0x39]
mov rcx, r15
call fcn.1400276c0
mov rbx, qword [rbp - 0x39]
test rbx, rbx
je 0x14003fec4
mov cl, 1
call fcn.1400613b0
mov rsi, rax
mov qword [rbp - 0x29], rax
mov rax, qword [rax]
mov rcx, rsi
call qword [rax + reloc.WS2_32.dll_htonl]
test rsi, rsi
je 0x14003feab
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + select]
mov rcx, rax
test rax, rax
je 0x14003feab
mov rax, qword [rax]
mov edx, 1
call qword [rax]
lea r8, [rbp - 0x31]
lea rdx, [rbp - 0x39]
mov rcx, rbx
call fcn.14001e6c0
cmp byte [rbp - 0x39], 0
mov ecx, dword [rbp - 0x35]
jne 0x14003fec7
mov ecx, r14d
mov rax, qword [rdi]
mov dword [rax + 0xc], ecx
mov rdx, qword [rbp + 7]
cmp rdx, 0xf
jbe 0x14003ff08
inc rdx
mov rcx, qword [rbp - 0x11]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003ff03
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14004013d
call fcn.140063654
xorps xmm0, xmm0
movups xmmword [rbp - 0x11], xmm0
movdqa xmm1, xmmword [reloc.WS2_32.dll_getsockopt]
movdqu xmmword [rbp - 1], xmm1
mov rax, qword [str.heading]
mov dword [rbp - 0x11], eax
movzx eax, word [0x14008bf8c]
mov word [rbp - 0xd], ax
movzx eax, byte [0x14008bf8e]
mov byte [rbp - 0xb], al
mov byte [rbp - 0xa], 0
mov byte [rbp + 0xf], 0x2e
lea rax, [rbp - 0x11]
mov qword [rbp + 0x17], rax
lea r8, [rbp - 0x11]
lea rdx, [rbp - 0x39]
mov rcx, r15
call fcn.1400276c0
mov rbx, qword [rbp - 0x39]
test rbx, rbx
je 0x14003ffb4
mov cl, 1
call fcn.1400613b0
mov rsi, rax
mov qword [rbp - 0x29], rax
mov rax, qword [rax]
mov rcx, rsi
call qword [rax + reloc.WS2_32.dll_htonl]
test rsi, rsi
je 0x14003ff9b
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + select]
mov rcx, rax
test rax, rax
je 0x14003ff9b
mov rax, qword [rax]
mov edx, 1
call qword [rax]
lea r8, [rbp - 0x31]
lea rdx, [rbp - 0x39]
mov rcx, rbx
call fcn.14001e6c0
cmp byte [rbp - 0x39], 0
mov ecx, dword [rbp - 0x35]
jne 0x14003ffb7
mov ecx, r14d
mov rax, qword [rdi]
mov dword [rax + 0x10], ecx
mov rdx, qword [rbp + 7]
cmp rdx, 0xf
jbe 0x14003fff8
inc rdx
mov rcx, qword [rbp - 0x11]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14003fff3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040143
call fcn.140063654
xorps xmm0, xmm0
movups xmmword [rbp - 0x11], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 1], xmm1
mov ecx, 0x20
call fcn.1400633d0
mov rdx, rax
mov qword [rbp - 0x11], rax
movdqa xmm0, xmmword [0x14008cf50]
movdqu xmmword [rbp - 1], xmm0
movups xmm0, xmmword [str.proximity_alert_radius]
movups xmmword [rax], xmm0
mov eax, dword [0x14008bfa0]
mov dword [rdx + 0x10], eax
movzx eax, word [0x14008bfa4]
mov word [rdx + 0x14], ax
mov byte [rdx + 0x16], 0
mov byte [rbp + 0xf], 0x2e
mov qword [rbp + 0x17], rdx
lea r8, [rbp - 0x11]
lea rdx, [rbp - 0x39]
mov rcx, r15
call fcn.1400276c0
mov rbx, qword [rbp - 0x39]
test rbx, rbx
je 0x1400400b9
mov cl, 1
call fcn.1400613b0
mov rsi, rax
mov qword [rbp - 0x29], rax
mov rax, qword [rax]
mov rcx, rsi
call qword [rax + reloc.WS2_32.dll_htonl]
test rsi, rsi
je 0x14004009f
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + select]
mov rcx, rax
test rax, rax
je 0x14004009f
mov rax, qword [rax]
mov edx, 1
call qword [rax]
lea r8, [rbp - 0x31]
lea rdx, [rbp - 0x39]
mov rcx, rbx
call fcn.14001e6c0
cmp byte [rbp - 0x39], 0
je 0x1400400b9
mov r14d, dword [rbp - 0x35]
mov rax, qword [rdi]
mov dword [rax + 0x14], r14d
mov rdx, qword [rbp + 7]
cmp rdx, 0xf
jbe 0x1400400f7
inc rdx
mov rcx, qword [rbp - 0x11]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400400f2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140040125
call fcn.140063654
mov rax, rdi
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.1400633b0
mov rbx, qword [rsp + 0xc0]
movaps xmm6, xmmword [rsp + 0x80]
add rsp, 0x90
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
call fcn.14006c380
int3
call fcn.14006c380
int3
call fcn.14006c380
int3
call fcn.14006c380
int3
call fcn.14006c380
int3
call fcn.14006c380
int3