Function at 0x140029040
Capabilities:
Get geographical location

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x140029357
push rbp
mov rbp, rsp
sub rsp, 0x40
mov qword [rsp + 0x60], rcx
lea rdx, [rcx - 1]
nop dword [rax + rax]
test rcx, rdx
jne 0x140029316
test rcx, rcx
je 0x140029316
cmp rcx, 0x40
ja 0x1400292d6
nop dword [rax]
test rdi, rdi
jne 0x14002908a
mov rdx, rcx
jmp 0x1400290a2
lea rdx, [rdi + rcx]
lea rdx, [rdx - 1]
mov rsi, rcx
neg rsi
nop
and rsi, rdx
mov rdx, rcx
mov rcx, rsi
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x38], rcx
shr rbx, 6
jmp 0x1400290c9
mov rbx, qword [rsp + 0x20]
dec rbx
mov rax, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x20], rbx
test rbx, rbx
jl 0x140029115
cmp rbx, 8
jae 0x1400292c9
test byte [rax], al
mov rcx, qword [rax + rbx*8]
or rcx, qword [rax + rbx*8 + 0x40]
mov rax, rcx
mov rbx, rdx
call fcn.140028ea0
cmp rax, 0xffffffffffffffff
je 0x1400290b2
mov rax, qword [rsp + 0x20]
test rax, rax
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x20]
jl 0x1400291c5
nop dword [rax + rax]
cmp rbx, 8
jae 0x1400292bc
test byte [rax], al
mov rcx, qword [rax + rbx*8]
or rcx, qword [rax + rbx*8 + 0x40]
mov rax, rcx
mov rbx, rdx
nop dword [rax + rax]
call fcn.140028ea0
mov rcx, rax
not rax
mov rdx, qword [rsp + 0x20]
mov rsi, rdx
shl rdx, 6
bsr rdi, rax
mov r8, 0xffffffffffffffff
cmove rdi, r8
lea r9, [rdi - 0x3f]
neg r9
lea r10, [rdi + 1]
neg r10
mov rax, rcx
mov rcx, r10
shl rax, cl
lea rcx, [rdi + rdx]
lea rcx, [rcx + 1]
lea rdx, [rdi + rdx]
lea rdx, [rdx + 1]
cmp r9, 0x40
sbb r9, r9
and rax, r9
test rax, rax
je 0x1400291b3
bsr rsi, rax
cmove rsi, r8
add rsi, 0xffffffffffffffc1
neg rsi
mov rdi, rsi
jmp 0x140029243
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x30], rdx
inc rdi
dec rsi
jmp 0x1400291ec
xor eax, eax
mov rbx, rax
add rsp, 0x40
pop rbp
ret
mov rsi, qword [rsp + 0x18]
dec rsi
mov rdx, qword [rsp + 0x30]
mov r8, 0xffffffffffffffff
mov rdi, rcx
mov rcx, qword [rsp + 0x28]
test rsi, rsi
jl 0x140029243
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x10], rdi
mov rcx, qword [rsp + 0x50]
mov rax, qword [rcx + rsi*8]
or rax, qword [rcx + rsi*8 + 0x40]
mov rbx, qword [rsp + 0x60]
call fcn.140028ea0
bsr rcx, rax
mov rdx, 0xffffffffffffffff
cmove rcx, rdx
inc rcx
mov rsi, qword [rsp + 0x10]
sub rsi, rcx
lea rcx, [rsi + 0x40]
test rax, rax
je 0x1400291d0
mov rdx, qword [rsp + 0x30]
mov rdi, rcx
mov rcx, qword [rsp + 0x28]
mov rsi, qword [0x1416f9110]
mov r8, qword [rsp + 0x38]
cmp r8, rdi
mov r9, rdi
cmovb rdi, r8
mov r8, rdx
sub rdx, rdi
nop
cmp rsi, 0x2000
jbe 0x1400292ad
cmp qword [0x1416f9108], rsi
jae 0x1400292a8
shr rsi, 0xd
lea r10, [rdx + rsi]
lea r10, [r10 - 1]
neg rsi
and r10, rsi
nop
cmp rcx, r10
jb 0x1400292a3
sub r8, r9
and rsi, rdx
nop
cmp rsi, r8
jb 0x14002929e
sub rdx, rsi
add rdi, rdx
jmp 0x1400292b0
mov rsi, rdx
jmp 0x1400292b0
mov rsi, rdx
jmp 0x1400292b0
mov rsi, rdx
jmp 0x1400292b0
mov rsi, rdx
mov rax, rsi
mov rbx, rdi
add rsp, 0x40
pop rbp
ret
mov rax, rbx
mov ecx, 8
call fcn.1400713a0
mov rax, rbx
mov ecx, 8
call fcn.1400713a0
call fcn.14003f2a0
lea rax, [0x140aeabb3]
mov ebx, 0xf
call fcn.14003fb20
mov rax, qword [rsp + 0x60]
call fcn.14003f860
call fcn.14003f4e0
nop dword [rax + rax]
call fcn.14003f300
lea rax, [0x140ae7fc5]
mov ebx, 0xd
call fcn.14003d800
call fcn.14003f2a0
lea rax, [0x140aeabb3]
mov ebx, 0xf
call fcn.14003fb20
mov rax, qword [rsp + 0x60]
call fcn.14003f860
call fcn.14003f4e0
nop dword [rax + rax]
call fcn.14003f300
lea rax, [0x140b0689e]
mov ebx, 0x21
call fcn.14003d800
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call fcn.14006f0a0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
jmp fcn.140029040