Function at 0x180189bb0
Capabilities:
Get geographical location

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x318]
sub rsp, 0x3f0
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
mov rax, qword [0x18054e100]
xor rax, rsp
mov qword [rbp + 0x2c0], rax
xor r13d, r13d
mov dword [rsp + 0x40], r13d
lea rdx, [0x1805784e0]
cmp qword [0x1805784f8], 0xf
cmova rdx, qword [0x1805784e0]
lea r15, [0x1805755a0]
mov rcx, r15
mov rdi, qword [0x1805755a0]
mov rsi, qword [0x1805755b8]
cmp rsi, 0xf
cmova rcx, rdi
mov rbx, qword [0x1805755b0]
cmp rbx, qword [0x1805784f0]
jne 0x180189c4e
mov r8, rbx
call fcn.18038de00
test eax, eax
je 0x18018a6da
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
mov qword [rbp - 0x78], r13
mov qword [rbp - 0x70], 0xf
mov byte [rsp + 0x78], r13b
movabs rax, 0x7fffffffffffffff
sub rax, rbx
cmp rax, 0x11
jb 0x18018a71c
mov rax, r15
cmp rsi, 0xf
cmova rax, rdi
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x11
lea r9, str.https:__ipapi.co_
lea rcx, [rsp + 0x58]
call fcn.18006a4c0
nop
mov r8d, 5
lea rdx, str._json
lea rcx, [rsp + 0x58]
call fcn.18006a3c0
movups xmm6, xmmword [rax]
movups xmm7, xmmword [rax + 0x10]
mov qword [rax + 0x10], r13
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
mov rdx, qword [rbp - 0x70]
cmp rdx, 0xf
jbe 0x180189d17
inc rdx
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180189d12
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18018a722
call fcn.180357650
movups xmmword [rsp + 0x78], xmm6
movups xmmword [rbp - 0x78], xmm7
lea rcx, [rsp + 0x58]
call fcn.18006b8d0
xorps xmm0, xmm0
movups xmmword [rbp + 0x58], xmm0
movdqa xmm1, xmmword [0x180509df0]
movdqu xmmword [rbp + 0x68], xmm1
mov word [rbp + 0x58], r13w
mov edi, dword [rbp - 0x78]
lea r8, [rsp + 0x78]
cmp qword [rbp - 0x70], 0xf
cmova r8, qword [rsp + 0x78]
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], r13
mov r9d, edi
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rbx, eax
xorps xmm0, xmm0
movups xmmword [rbp - 0x68], xmm0
mov qword [rbp - 0x58], r13
mov qword [rbp - 0x50], r13
mov r8, rbx
xor edx, edx
lea rcx, [rbp - 0x68]
call fcn.180085170
lea rcx, [rbp - 0x68]
cmp qword [rbp - 0x50], 7
cmova rcx, qword [rbp - 0x68]
lea r8, [rsp + 0x78]
cmp qword [rbp - 0x70], 0xf
cmova r8, qword [rsp + 0x78]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rcx
mov r9d, edi
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
nop
mov rbx, qword [rbp - 0x58]
lea r9, [rbp - 0x68]
cmp qword [rbp - 0x50], 7
cmova r9, qword [rbp - 0x68]
lea rcx, [rbp + 0x58]
cmp rbx, 7
ja 0x180189df6
mov qword [rbp + 0x68], rbx
lea r8, [rbx + rbx]
mov rdx, r9
call fcn.18038d320
mov word [rbp + rbx*2 + 0x58], r13w
jmp 0x180189dfe
mov rdx, rbx
call fcn.18008ab00
mov r9d, 8
lea r8, str.geossUsers
mov edx, 0xff
lea rcx, [rbp + 0xc0]
call fcn.180360384
mov byte [rbp + 0x2be], 0
lea rdx, [rbp + 0x58]
lea rcx, [rsp + 0x58]
call fcn.18008a780
mov r9, rax
lea rdx, [rbp - 0x48]
lea rcx, [rbp + 0xc0]
call fcn.18008a8b0
nop
mov rdi, qword [rbp - 0x38]
lea r8, [rbp - 0x48]
cmp qword [rbp - 0x30], 7
cmova r8, qword [rbp - 0x48]
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], r13
mov r9d, edi
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
movsxd rbx, eax
mov rdx, rbx
xor r8d, r8d
lea rcx, [rbp + 0x38]
call fcn.180085040
lea rcx, [rbp + 0x38]
cmp qword [rbp + 0x50], 0xf
cmova rcx, qword [rbp + 0x38]
lea r8, [rbp - 0x48]
cmp qword [rbp - 0x30], 7
cmova r8, qword [rbp - 0x48]
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rcx
mov r9d, edi
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
nop
lea rdx, [rbp + 0x38]
lea rsi, [0x18058c2c8]
mov r8, qword [rbp + 0x48]
lea rbx, [0x1805784c0]
mov rcx, rbx
cmp qword [rbp + 0x50], 0xf
jbe 0x180189ef2
mov rdx, qword [rbp + 0x38]
call fcn.180068770
jmp 0x180189efc
call fcn.180068770
cmp rsi, rbx
je 0x180189f1e
cmp qword [0x1805784d8], 0xf
cmova rbx, qword [0x1805784c0]
mov r8, qword [0x1805784d0]
mov rdx, rbx
mov rcx, rsi
call fcn.180068770
xor r8d, r8d
lea rdx, [0x18043ad70]
lea rcx, [0x18058c3a8]
call fcn.180068770
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], 1
mov qword [rsp + 0x70], 0xf
mov byte [rsp + 0x59], 0
mov rbx, r15
cmp qword [0x1805755b8], 0xf
cmova rbx, qword [0x1805755a0]
mov rax, qword [0x1805755b0]
cmp rax, 1
jb 0x180189fc2
lea rdi, [rax + rbx]
mov r8, rdi
sub r8, rbx
mov edx, 0x2e
mov rcx, rbx
call fcn.18038d9a0
test rax, rax
je 0x180189fc2
nop
cmp byte [rax], 0x2e
jne 0x180189f9a
mov ecx, r13d
jmp 0x180189f9f
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x18018a0ba
inc rax
mov r8, rdi
sub r8, rax
mov edx, 0x2e
mov rcx, rax
call fcn.18038d9a0
test rax, rax
jne 0x180189f90
mov rax, 0xffffffffffffffff
cmp rax, 0xffffffffffffffff
setne byte [0x1805b11fd]
call fcn.180306bd0
call fcn.180306cf0
call fcn.180306e00
call fcn.180306f40
xor r8d, r8d
lea rdx, [0x18043ad70]
mov rcx, rsi
call fcn.180068770
cmp byte [0x1805b11fd], 0
je 0x18018a5d5
cmp byte [0x1805b2f07], 0
jne 0x18018a5bc
cmp byte [0x1805b2f05], 0
jne 0x18018a5d5
cmp byte [0x1805b2f06], 0
jne 0x18018a5d5
cmp byte [0x1805b2f04], 0
jne 0x18018a5d5
mov qword [rbp + 0xb0], r13
lea rdx, [rbp - 0x48]
cmp qword [rbp - 0x30], 7
cmova rdx, qword [rbp - 0x48]
mov rax, qword [rbp - 0x38]
lea r8, [rdx + rax*2]
lea rdx, [rbp - 0x48]
cmova rdx, qword [rbp - 0x48]
lea r9, [rbp + 0x78]
lea rcx, [rsp + 0x48]
call fcn.18018c1c0
nop
cmp byte [rsp + 0x48], 1
sete r12b
jne 0x18018a50e
mov rdi, qword [rsp + 0x50]
mov r14, qword [rdi]
mov rbx, qword [r14 + 8]
mov rsi, r14
cmp byte [rbx + 0x19], 0
jne 0x18018a0ce
nop dword [rax]
nop dword [rax + rax]
lea rcx, [rbx + 0x20]
lea rdx, str.city
call fcn.1800688d0
test al, al
je 0x18018a0c2
mov rbx, qword [rbx + 0x10]
jmp 0x18018a0c8
sub rax, rbx
jmp 0x180189fc9
mov rsi, rbx
mov rbx, qword [rbx]
cmp byte [rbx + 0x19], 0
je 0x18018a0a0
cmp byte [rsi + 0x19], 0
jne 0x18018a50e
lea rdx, [rsi + 0x20]
lea rcx, str.city
call fcn.180068940
test al, al
jne 0x18018a50e
cmp rsi, r14
je 0x18018a50e
test r12b, r12b
je 0x18018a50e
mov rbx, qword [r14 + 8]
mov rsi, r14
cmp byte [rbx + 0x19], al
jne 0x18018a136
nop
lea rcx, [rbx + 0x20]
lea rdx, str.region
call fcn.1800688d0
test al, al
je 0x18018a12a
mov rbx, qword [rbx + 0x10]
jmp 0x18018a130
mov rsi, rbx
mov rbx, qword [rbx]
cmp byte [rbx + 0x19], 0
je 0x18018a110
cmp byte [rsi + 0x19], 0
jne 0x18018a150
lea rdx, [rsi + 0x20]
lea rcx, str.region
call fcn.180068940
test al, al
je 0x18018a153
mov rsi, r14
cmp rsi, r14
je 0x18018a50e
mov rbx, qword [r14 + 8]
mov rsi, r14
cmp byte [rbx + 0x19], 0
jne 0x18018a196
nop dword [rax]
lea rcx, [rbx + 0x20]
lea rdx, str.country_name
call fcn.1800688d0
test al, al
je 0x18018a18a
mov rbx, qword [rbx + 0x10]
jmp 0x18018a190
mov rsi, rbx
mov rbx, qword [rbx]
cmp byte [rbx + 0x19], 0
je 0x18018a170
cmp byte [rsi + 0x19], 0
jne 0x18018a1b0
lea rdx, [rsi + 0x20]
lea rcx, str.country_name
call fcn.180068940
test al, al
je 0x18018a1b3
mov rsi, r14
cmp rsi, r14
je 0x18018a50e
mov rbx, qword [r14 + 8]
mov rsi, r14
cmp byte [rbx + 0x19], 0
jne 0x18018a1f6
nop dword [rax]
lea rcx, [rbx + 0x20]
lea rdx, str.country_capital
call fcn.1800688d0
test al, al
je 0x18018a1ea
mov rbx, qword [rbx + 0x10]
jmp 0x18018a1f0
mov rsi, rbx
mov rbx, qword [rbx]
cmp byte [rbx + 0x19], 0
je 0x18018a1d0
cmp byte [rsi + 0x19], 0
jne 0x18018a210
lea rdx, [rsi + 0x20]
lea rcx, str.country_capital
call fcn.180068940
test al, al
je 0x18018a213
mov rsi, r14
cmp rsi, r14
je 0x18018a50e
mov rbx, qword [r14 + 8]
mov rsi, r14
cmp byte [rbx + 0x19], 0
jne 0x18018a256
nop dword [rax]
lea rcx, [rbx + 0x20]
lea rdx, str.latitude
call fcn.1800688d0
test al, al
je 0x18018a24a
mov rbx, qword [rbx + 0x10]
jmp 0x18018a250
mov rsi, rbx
mov rbx, qword [rbx]
cmp byte [rbx + 0x19], 0
je 0x18018a230
cmp byte [rsi + 0x19], 0
jne 0x18018a270
lea rdx, [rsi + 0x20]
lea rcx, str.latitude
call fcn.180068940
test al, al
je 0x18018a273
mov rsi, r14
cmp rsi, r14
je 0x18018a50e
mov rbx, qword [r14 + 8]
mov rsi, r14
cmp byte [rbx + 0x19], 0
jne 0x18018a2b6
nop dword [rax]
lea rcx, [rbx + 0x20]
lea rdx, str.longitude
call fcn.1800688d0
test al, al
je 0x18018a2aa
mov rbx, qword [rbx + 0x10]
jmp 0x18018a2b0
mov rsi, rbx
mov rbx, qword [rbx]
cmp byte [rbx + 0x19], 0
je 0x18018a290
cmp byte [rsi + 0x19], 0
jne 0x18018a2d0
lea rdx, [rsi + 0x20]
lea rcx, str.longitude
call fcn.180068940
test al, al
je 0x18018a2d3
mov rsi, r14
cmp rsi, r14
setne al
test al, al
je 0x18018a50e
lea rdx, str.city
lea rcx, [rsp + 0x48]
call fcn.18018bef0
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], r13
mov qword [rsp + 0x70], 0xf
mov byte [rsp + 0x58], 0
mov dword [rsp + 0x40], 0x80f
lea rdx, [rsp + 0x58]
mov rcx, rax
call fcn.180068590
nop
lea rdx, str.region
lea rcx, [rsp + 0x48]
call fcn.18018bef0
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0x18], xmm0
mov qword [rbp + 0x28], r13
mov qword [rbp + 0x30], 0xf
mov byte [rbp + 0x18], 0
mov dword [rsp + 0x40], 0x60f
lea rdx, [rbp + 0x18]
mov rcx, rax
call fcn.180068590
nop
lea rdx, str.country_name
lea rcx, [rsp + 0x48]
call fcn.18018bef0
nop
xorps xmm0, xmm0
movups xmmword [rbp - 8], xmm0
mov qword [rbp + 8], r13
mov qword [rbp + 0x10], 0xf
mov byte [rbp - 8], 0
mov dword [rsp + 0x40], 0x52f
lea rdx, [rbp - 8]
mov rcx, rax
call fcn.180068590
nop
lea rdx, str.country_capital
lea rcx, [rsp + 0x48]
call fcn.18018bef0
nop
xorps xmm0, xmm0
movups xmmword [rbp - 0x28], xmm0
mov qword [rbp - 0x18], r13
mov qword [rbp - 0x10], 0xf
mov byte [rbp - 0x28], 0
mov dword [rsp + 0x40], 0x59f
lea rdx, [rbp - 0x28]
mov rcx, rax
call fcn.180068590
nop
lea rdx, str.latitude
lea rcx, [rsp + 0x48]
call fcn.18018bef0
mov rcx, rax
call fcn.1801969b0
movaps xmm6, xmm0
lea rdx, str.longitude
lea rcx, [rsp + 0x48]
call fcn.18018bef0
mov rcx, rax
call fcn.1801969b0
movaps xmm7, xmm0
lea rdx, [rsp + 0x58]
cmp qword [rsp + 0x70], 0xf
cmova rdx, qword [rsp + 0x58]
mov r8, qword [rsp + 0x68]
lea rcx, [0x18058c3c8]
call fcn.180068770
lea rdx, [rbp + 0x18]
cmp qword [rbp + 0x30], 0xf
cmova rdx, qword [rbp + 0x18]
mov r8, qword [rbp + 0x28]
lea rcx, [0x18058c3e8]
call fcn.180068770
lea rdx, [rbp - 8]
cmp qword [rbp + 0x10], 0xf
cmova rdx, qword [rbp - 8]
mov r8, qword [rbp + 8]
lea rcx, [0x18058c408]
call fcn.180068770
lea rdx, [rbp - 0x28]
cmp qword [rbp - 0x10], 0xf
cmova rdx, qword [rbp - 0x28]
mov r8, qword [rbp - 0x18]
lea rcx, [0x18058c428]
call fcn.180068770
movaps xmm1, xmm6
lea rcx, [rbp + 0x78]
call fcn.180189340
mov rdx, rax
lea rcx, [0x18058c448]
call fcn.18006afe0
lea rcx, [rbp + 0x78]
call fcn.18006b8d0
movaps xmm1, xmm7
lea rcx, [rbp + 0x78]
call fcn.180189340
mov rdx, rax
lea rcx, [0x18058c468]
call fcn.18006afe0
lea rcx, [rbp + 0x78]
call fcn.18006b8d0
mov byte [0x1805b11fc], 1
lea rcx, [rbp - 0x28]
call fcn.18006b8d0
nop
lea rcx, [rbp - 8]
call fcn.18006b8d0
nop
lea rcx, [rbp + 0x18]
call fcn.18006b8d0
nop
lea rcx, [rsp + 0x58]
call fcn.18006b8d0
jmp 0x18018a5ab
mov r8d, 0xa
lea rdx, str.dont_know
lea rcx, [0x18058c3c8]
call fcn.180068770
mov r8d, 0xa
lea rdx, str.dont_know
lea rcx, [0x18058c3e8]
call fcn.180068770
mov r8d, 0xa
lea rdx, str.dont_know
lea rcx, [0x18058c408]
call fcn.180068770
mov r8d, 0xa
lea rdx, str.dont_know
lea rcx, [0x18058c428]
call fcn.180068770
mov r8d, 0xa
lea rdx, str.dont_know
lea rcx, [0x18058c448]
call fcn.180068770
mov r8d, 0xa
lea rdx, str.dont_know
lea rcx, [0x18058c468]
call fcn.180068770
mov byte [0x1805b11fc], 0
movzx edx, byte [rsp + 0x48]
lea rcx, [rsp + 0x50]
call fcn.18006b970
jmp 0x18018a5d5
mov r8d, 0x13
lea rdx, str.Reserved_IP_Address
lea rcx, [0x18058c3a8]
call fcn.180068770
cmp qword [0x1805755b8], 0xf
cmova r15, qword [0x1805755a0]
mov r8, qword [0x1805755b0]
mov rdx, r15
lea rcx, [0x1805784e0]
call fcn.180068770
nop
lea rcx, [rbp + 0x38]
call fcn.18006b8d0
nop
lea rcx, [rbp - 0x48]
call fcn.18008cc80
nop
mov rdx, qword [rbp - 0x50]
cmp rdx, 7
jbe 0x18018a650
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18018a64b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18018a728
call fcn.180357650
mov qword [rbp - 0x58], r13
mov qword [rbp - 0x50], 7
mov word [rbp - 0x68], r13w
mov rdx, qword [rbp + 0x70]
cmp rdx, 7
jbe 0x18018a6a2
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18018a69c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18018a72e
call fcn.180357650
nop
mov rdx, qword [rbp - 0x70]
cmp rdx, 0xf
jbe 0x18018a6da
inc rdx
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18018a6d5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18018a716
call fcn.180357650
xor eax, eax
mov rcx, qword [rbp + 0x2c0]
xor rcx, rsp
call fcn.180357630
lea r11, [rsp + 0x3f0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.18035e820
nop
call fcn.18006b090
nop
call fcn.18035e820
nop
call fcn.18035e820
nop
call fcn.18035e820
int3