Function at 0x1800222e0
Capabilities:
Get geographical location

Disassembly:
mov rax, rsp
push rbp
push rdi
push r14
lea rbp, [rax - 0x5f]
sub rsp, 0xe0
mov qword [rbp - 0x29], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [0x1800e92b0]
xor rax, rsp
mov qword [rbp + 0x3f], rax
mov rbx, rcx
xor eax, eax
mov qword [rbp + 7], rax
mov qword [rbp + 0xf], rax
mov qword [rbp + 0x17], rax
mov qword [rbp + 0x1f], rax
mov qword [rbp + 0x27], rax
mov qword [rbp + 0x2f], rax
mov qword [rbp + 0x37], rax
mov qword [rbp - 0x31], reloc.WS2_32.dll_ntohs
xor r14d, r14d
mov qword [rbp - 0x39], r14
mov byte [rbp - 0x49], al
lea r8d, [rax + 0x1e]
lea rdx, str.SoftwarePhotoViewerCityCheck
lea rcx, [rbp - 0x49]
call fcn.180006b10
nop
mov dword [rsp + 0x20], r14d
xor r9d, r9d
lea r8, [rbp - 0x49]
mov rdx, 0xffffffff80000001
lea rcx, [rbp + 7]
call fcn.18000cfe0
nop
mov rax, qword [rbp - 0x31]
cmp rax, 0x10
jb 0x1800223cb
inc rax
mov rcx, qword [rbp - 0x49]
cmp rax, 0x1000
jb 0x1800223c6
test cl, 0x1f
je 0x180022399
call fcn.180083e00
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x1800223a8
call fcn.180083e00
int3
sub rcx, rax
cmp rcx, 8
jae 0x1800223b7
call fcn.180083e00
int3
cmp rcx, 0x27
jbe 0x1800223c3
call fcn.180083e00
int3
mov rcx, rax
call fcn.180060d7c
mov qword [rbp - 0x31], reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x39], r14
mov byte [rbp - 0x49], 0
mov qword [rbp - 9], reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x11], r14
mov byte [rbp - 0x21], 0
mov r8d, 4
lea rdx, str.city
lea rcx, [rbp - 0x21]
call fcn.180006b10
nop
lea r8, [rbp - 0x21]
lea rdx, [rbp - 0x69]
lea rcx, [rbp + 7]
call fcn.18000d0f0
mov rdx, rax
mov rcx, rbx
call fcn.180002740
mov rax, qword [rbp - 0x51]
cmp rax, 0x10
jb 0x180022474
inc rax
mov rcx, qword [rbp - 0x69]
cmp rax, 0x1000
jb 0x18002246f
test cl, 0x1f
je 0x180022442
call fcn.180083e00
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x180022451
call fcn.180083e00
int3
sub rcx, rax
cmp rcx, 8
jae 0x180022460
call fcn.180083e00
int3
cmp rcx, 0x27
jbe 0x18002246c
call fcn.180083e00
int3
mov rcx, rax
call fcn.180060d7c
mov qword [rbp - 0x51], reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x59], r14
mov byte [rbp - 0x69], 0
mov rax, qword [rbp - 9]
cmp rax, 0x10
jb 0x1800224da
inc rax
mov rcx, qword [rbp - 0x21]
cmp rax, 0x1000
jb 0x1800224d5
test cl, 0x1f
je 0x1800224a8
call fcn.180083e00
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x1800224b7
call fcn.180083e00
int3
sub rcx, rax
cmp rcx, 8
jae 0x1800224c6
call fcn.180083e00
int3
cmp rcx, 0x27
jbe 0x1800224d2
call fcn.180083e00
int3
mov rcx, rax
call fcn.180060d7c
mov sil, 1
cmp qword [rbx + 0x10], 0
je 0x180022640
mov rdi, r14
mov qword [rbp - 1], r14
xor eax, eax
mov qword [rbp - 0x21], rax
mov qword [rbp - 0x19], rax
mov qword [rbp - 0x11], rax
mov qword [rbp - 0x51], reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x59], r14
mov byte [rbp - 0x69], al
lea r8d, [rax + 4]
lea rdx, str.time
lea rcx, [rbp - 0x69]
call fcn.180006b10
nop
lea r8, [rbp - 0x69]
lea rdx, [rbp - 0x21]
lea rcx, [rbp + 7]
call fcn.18000d2e0
nop
mov rax, qword [rbp - 0x51]
cmp rax, 0x10
jb 0x180022589
inc rax
mov rcx, qword [rbp - 0x69]
cmp rax, 0x1000
jb 0x180022584
test cl, 0x1f
je 0x180022557
call fcn.180083e00
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x180022566
call fcn.180083e00
int3
sub rcx, rax
cmp rcx, 8
jae 0x180022575
call fcn.180083e00
int3
cmp rcx, 0x27
jbe 0x180022581
call fcn.180083e00
int3
mov rcx, rax
call fcn.180060d7c
mov rdx, qword [rbp - 0x21]
mov r8, qword [rbp - 0x19]
cmp rdx, r8
je 0x1800225a6
sub r8, rdx
lea rcx, [rbp - 1]
call fcn.180081b10
mov rdi, qword [rbp - 1]
xor ecx, ecx
call fcn.180087e98
mov rcx, rax
sub rcx, rdi
movabs rax, 0x1845c8a0ce512957
imul rcx
sar rdx, 0xd
mov rax, rdx
shr rax, 0x3f
add rax, rdx
cqo
xor rax, rdx
sub rax, rdx
movzx edi, sil
cmp rax, 5
cmovl edi, r14d
mov rcx, qword [rbp - 0x21]
test rcx, rcx
je 0x180022637
mov rax, qword [rbp - 0x11]
sub rax, rcx
cmp rax, 0x1000
jb 0x180022632
test cl, 0x1f
je 0x180022605
call fcn.180083e00
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x180022614
call fcn.180083e00
int3
sub rcx, rax
cmp rcx, 8
jae 0x180022623
call fcn.180083e00
int3
cmp rcx, 0x27
jbe 0x18002262f
call fcn.180083e00
int3
mov rcx, rax
call fcn.180060d7c
test dil, dil
je 0x1800228e3
lea rdx, [rbp - 0x69]
mov rcx, rbx
call fcn.180021dc0
mov rdx, rax
mov rcx, rbx
call fcn.180002740
mov rax, qword [rbp - 0x51]
cmp rax, 0x10
jb 0x1800226ad
inc rax
mov rcx, qword [rbp - 0x69]
cmp rax, 0x1000
jb 0x1800226a8
test cl, 0x1f
je 0x18002267b
call fcn.180083e00
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x18002268a
call fcn.180083e00
int3
sub rcx, rax
cmp rcx, 8
jae 0x180022699
call fcn.180083e00
int3
cmp rcx, 0x27
jbe 0x1800226a5
call fcn.180083e00
int3
mov rcx, rax
call fcn.180060d7c
mov qword [rbp - 0x51], reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x59], r14
mov byte [rbp - 0x69], 0
mov r8d, 4
lea rdx, str.city
lea rcx, [rbp - 0x69]
call fcn.180006b10
nop
mov r8, rbx
lea rdx, [rbp - 0x69]
lea rcx, [rbp + 7]
call fcn.18000d070
nop
mov rax, qword [rbp - 0x51]
cmp rax, 0x10
jb 0x18002273b
inc rax
mov rcx, qword [rbp - 0x69]
cmp rax, 0x1000
jb 0x180022736
test cl, 0x1f
je 0x180022709
call fcn.180083e00
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x180022718
call fcn.180083e00
int3
sub rcx, rax
cmp rcx, 8
jae 0x180022727
call fcn.180083e00
int3
cmp rcx, 0x27
jbe 0x180022733
call fcn.180083e00
int3
mov rcx, rax
call fcn.180060d7c
xor ecx, ecx
call fcn.180087e98
mov qword [rbp - 1], rax
lea rbx, [rbp - 1]
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x21], xmm0
mov r9, r14
mov qword [rbp - 0x11], r14
mov esi, r14d
mov rax, qword [rbp - 0x19]
mov r8, qword [rbp - 0x21]
cmp rbx, rax
jae 0x1800227e2
cmp r8, rbx
ja 0x1800227e2
mov rdi, rbx
sub rdi, r8
cmp rax, r9
jne 0x1800227d4
mov rcx, r9
sub rcx, rax
cmp rcx, 1
jae 0x1800227d4
sub rax, r8
mov rcx, rax
not rcx
cmp rcx, 1
jb 0x18002286a
lea rdx, [rax + 1]
sub r9, r8
mov rax, r9
shr rax, 1
mov rcx, rax
not rcx
add rax, r9
mov r8, r14
cmp rcx, r9
cmovae r8, rax
cmp r8, rdx
cmovae rdx, r8
lea rcx, [rbp - 0x21]
call fcn.18000d8a0
mov r9, qword [rbp - 0x11]
mov rax, qword [rbp - 0x19]
mov r8, qword [rbp - 0x21]
lea rcx, [r8 + rdi]
test rax, rax
je 0x180022854
movzx ecx, byte [rcx]
jmp 0x180022846
cmp rax, r9
jne 0x18002283e
mov rcx, r9
sub rcx, rax
cmp rcx, 1
jae 0x18002283e
sub rax, r8
mov rcx, rax
not rcx
cmp rcx, 1
jb 0x180022877
lea rdx, [rax + 1]
sub r9, r8
mov rax, r9
shr rax, 1
mov rcx, rax
not rcx
add rax, r9
mov r8, r14
cmp rcx, r9
cmovae r8, rax
cmp r8, rdx
cmovae rdx, r8
lea rcx, [rbp - 0x21]
call fcn.18000d8a0
mov r9, qword [rbp - 0x11]
mov rax, qword [rbp - 0x19]
mov r8, qword [rbp - 0x21]
test rax, rax
je 0x180022854
movzx ecx, byte [rbx]
mov byte [rax], cl
mov r9, qword [rbp - 0x11]
mov r8, qword [rbp - 0x21]
mov rax, qword [rbp - 0x19]
inc rax
mov qword [rbp - 0x19], rax
inc rbx
inc esi
cmp esi, 8
jae 0x180022884
jmp 0x180022764
lea rcx, str.vector_T__too_long
call fcn.180025308
int3
lea rcx, str.vector_T__too_long
call fcn.180025308
int3
mov qword [rbp - 0x51], reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x59], r14
mov byte [rbp - 0x69], 0
mov r8d, 4
lea rdx, str.time
lea rcx, [rbp - 0x69]
call fcn.180006b10
nop
lea r8, [rbp - 0x21]
lea rdx, [rbp - 0x69]
lea rcx, [rbp + 7]
call fcn.18000d260
nop
lea rcx, [rbp - 0x69]
call fcn.180006510
nop
mov rcx, qword [rbp - 0x21]
test rcx, rcx
je 0x1800228e3
mov rdx, qword [rbp - 0x11]
sub rdx, rcx
mov r8d, 1
call fcn.180006990
nop
lea rcx, [rbp + 7]
call fcn.18000d040
mov rcx, qword [rbp + 0x3f]
xor rcx, rsp
call fcn.1800612f0
lea r11, [rsp + 0xe0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret