Function at 0x140220fd0
Capabilities:
Get geographical location

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
mov rbp, rsp
sub rsp, 0x70
mov qword [rbp - 0x38], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov rax, qword [0x1403bf028]
xor rax, rsp
mov qword [rbp - 8], rax
mov rdi, rdx
mov rbx, rcx
mov qword [rbp - 0x30], rcx
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x50], xmm0
xor esi, esi
mov qword [rbp - 0x40], rsi
movdqa xmm0, xmmword [0x140333fe0]
movdqu xmmword [rbp - 0x18], xmm0
mov word [rbp - 0x28], si
lea rdx, [0x1402cb3dc]
lea rcx, [rbp - 0x28]
call fcn.14000b3a4
lea r8, [rbp - 0x28]
lea rdx, [rbp - 0x50]
mov rcx, rdi
call fcn.1400165b0
mov rax, qword [rbp - 0x10]
cmp rax, 8
jb 0x140220f6f
lea rax, [rax*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rdx, rcx
cmp rax, 0x1000
jb 0x140220f6a
mov rcx, qword [rcx - 8]
sub rdx, rcx
lea rax, [rdx - 8]
cmp rax, 0x1f
ja 0x140220fc5
call fcn.140261814
mov rcx, qword [rbp - 0x48]
mov rdx, qword [rbp - 0x50]
sub rcx, rdx
sar rcx, 5
mov qword [rbx + 0x10], rsi
mov qword [rbx + 0x18], rsi
cmp rcx, 2
mov rcx, rbx
jne 0x140220f95
add rdx, 0x20
jmp 0x140220f98
mov rdx, rdi
call fcn.14000b494
lea rcx, [rbp - 0x50]
call fcn.1400135d8
mov rax, rbx
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.1402361b0
mov rbx, qword [rsp + 0xa0]
add rsp, 0x70
pop rdi
pop rsi
pop rbp
ret
call fcn.140261a5c
nop
jmp 0x140220fcd
nop
nop
nop
mov rax, rsp
push rbp
push rdi
push r13
push r14
push r15
lea rbp, [rax - 0x218]
sub rsp, 0x2f0
mov qword [rbp - 8], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
mov rax, qword [0x1403bf028]
xor rax, rsp
mov qword [rbp + 0x1e0], rax
mov rdi, rdx
lea rbx, [rcx + 8]
xor esi, esi
lea r14d, [rsi + 8]
mov r15d, 0x1000
cmp qword [rbx + 0x10], rsi
jne 0x14022108e
lea rcx, [rbp + 0x100]
call fcn.1402243e4
mov rdx, rax
mov rcx, rbx
call fcn.14000b27c
mov rax, qword [rbp + 0x118]
cmp rax, r14
jb 0x140221077
lea rax, [rax*2 + 2]
mov rcx, qword [rbp + 0x100]
mov rdx, rcx
cmp rax, r15
jb 0x140221072
mov rcx, qword [rcx - 8]
sub rdx, rcx
lea rax, [rdx - 8]
cmp rax, 0x1f
ja 0x140221847
call fcn.140261814
movdqa xmm0, xmmword [0x140333fe0]
movdqu xmmword [rbp + 0x110], xmm0
mov word [rbp + 0x100], si
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x1b0], xmm0
mov rdx, rbx
lea rcx, [rbp + 0x1a0]
call fcn.14000b494
nop
lea rcx, [rbp + 0xe0]
call fcn.140224ab0
nop
mov ecx, 0x10
call qword [sym.imp.KERNEL32.dll_GetUserGeoID]
mov dword [rsp + 0x24], eax
lea rcx, [rbp + 0xc0]
call fcn.140220a6c
nop
mov qword [rbp + 0x10], rsi
mov qword [rbp + 0x18], 7
mov word [rbp], si
call fcn.140224e48
cmp qword [0x1403d6120], rsi
je 0x140221241
mov ecx, 0x38
call fcn.140261ad4
test rax, rax
je 0x140221851
mov qword [rsp + 0x28], rax
mov rcx, rax
call fcn.1400108dc
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x30], xmm0
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.14000fdc4
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x1402211f2
movdqa xmm0, xmmword [0x140333fe0]
movdqu xmmword [rbp + 0x30], xmm0
mov word [rbp + 0x20], si
mov dword [rsp + 0x20], r14d
lea r8, [rbp + 0x20]
lea rdx, [rsp + 0x20]
call fcn.140221db0
test al, al
je 0x1402211ba
lea rdx, [rbp + 0x20]
lea rcx, [rbp + 0x1c0]
call fcn.140220ec8
mov rdx, rax
lea rcx, [rbp]
call fcn.14000b27c
mov rax, qword [rbp + 0x1d8]
cmp rax, r14
jb 0x1402211ba
lea rax, [rax*2 + 2]
mov rcx, qword [rbp + 0x1c0]
mov rdx, rcx
cmp rax, r15
jb 0x1402211b4
mov rcx, qword [rcx - 8]
sub rdx, rcx
lea rax, [rdx - 8]
cmp rax, 0x1f
ja 0x14022185b
call fcn.140261814
nop
mov rax, qword [rbp + 0x38]
cmp rax, r14
jb 0x1402211f2
lea rax, [rax*2 + 2]
mov rcx, qword [rbp + 0x20]
mov rdx, rcx
cmp rax, r15
jb 0x1402211ec
mov rcx, qword [rcx - 8]
sub rdx, rcx
lea rax, [rdx - 8]
cmp rax, 0x1f
ja 0x140221865
call fcn.140261814
nop
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x140221241
or r13d, 0xffffffff
mov eax, r13d
lock xadd dword [rcx + 8], eax
add eax, r13d
jne 0x140221241
mov rbx, qword [rsp + 0x38]
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax]
call qword [case.0x140118f85.0]
mov eax, r13d
lock xadd dword [rbx + 0xc], eax
add eax, r13d
jne 0x140221241
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140118f85.0]
nop
cmp qword [rbp + 0x10], rsi
jne 0x140221259
lea rdx, str.0.0.0.0
lea rcx, [rbp]
call fcn.14000b3a4
jmp 0x140221260
mov byte [0x1403c2f1c], sil
mov rax, qword [rdi]
mov rbx, qword [rax]
lea rax, [rbp + 0x1a0]
mov qword [rsp + 0x40], rax
movdqa xmm0, xmmword [0x140333fe0]
movdqu xmmword [rbp + 0x50], xmm0
mov word [rbp + 0x40], si
lea rdx, str.DefaultWZ
lea rcx, [rbp + 0x40]
call fcn.14000b3a4
nop
lea r8, [rsp + 0x40]
lea rdx, [rbp + 0x40]
lea rcx, [rbp + 0x120]
call fcn.1402228ec
nop
cmp qword [rax + 0x18], r14
jb 0x1402212b3
mov rax, qword [rax]
lea r13, vtable.Mso::Logging::StructuredObject_wchar_t_const____ptr64__1_.0
mov qword [rsp + 0x78], r13
lea rcx, str.MachineId
mov qword [rbp - 0x80], rcx
mov qword [rbp - 0x78], rax
mov word [rbp - 0x70], si
lea rdx, [rsp + 0x78]
mov rcx, rdi
mov rax, rbx
call qword [case.0x140118f85.0]
nop
mov rax, qword [rbp + 0x138]
cmp rax, r14
jb 0x140221321
lea rax, [rax*2 + 2]
mov rcx, qword [rbp + 0x120]
mov rdx, rcx
cmp rax, r15
jb 0x14022131c
mov rcx, qword [rcx - 8]
sub rdx, rcx
lea rax, [rdx - 8]
cmp rax, 0x1f
ja 0x14022186f
call fcn.140261814
movdqa xmm0, xmmword [0x140333fe0]
movdqu xmmword [rbp + 0x130], xmm0
mov word [rbp + 0x120], si
mov rax, qword [rbp + 0x58]
cmp rax, r14
jb 0x14022136f
lea rax, [rax*2 + 2]
mov rcx, qword [rbp + 0x40]
mov rdx, rcx
cmp rax, r15
jb 0x14022136a
mov rcx, qword [rcx - 8]
sub rdx, rcx
lea rax, [rdx - 8]
cmp rax, 0x1f
ja 0x140221879
call fcn.140261814
mov rax, qword [rdi]
mov rbx, qword [rax]
lea rax, [rbp + 0xe0]
mov qword [rsp + 0x48], rax
movdqa xmm0, xmmword [0x140333fe0]
movdqu xmmword [rbp + 0x70], xmm0
mov word [rbp + 0x60], si
lea rdx, str.DefaultWZ
lea rcx, [rbp + 0x60]
call fcn.14000b3a4
lea r8, [rsp + 0x48]
lea rdx, [rbp + 0x60]
lea rcx, [rbp + 0x140]
call fcn.1402228ec
cmp qword [rax + 0x18], r14
jb 0x1402213c0
mov rax, qword [rax]
mov qword [rbp - 0x68], r13
lea rcx, [0x140312868]
mov qword [rbp - 0x60], rcx
mov qword [rbp - 0x58], rax
mov word [rbp - 0x50], si
lea rdx, [rbp - 0x68]
mov rcx, rdi
mov rax, rbx
call qword [case.0x140118f85.0]
mov rax, qword [rbp + 0x158]
cmp rax, r14
jb 0x140221424
lea rax, [rax*2 + 2]
mov rcx, qword [rbp + 0x140]
mov rdx, rcx
cmp rax, r15
jb 0x14022141f
mov rcx, qword [rcx - 8]
sub rdx, rcx
lea rax, [rdx - 8]
cmp rax, 0x1f
ja 0x140221883
call fcn.140261814
movdqa xmm0, xmmword [0x140333fe0]
movdqu xmmword [rbp + 0x150], xmm0
mov word [rbp + 0x140], si
mov rax, qword [rbp + 0x78]
cmp rax, r14
jb 0x140221472
lea rax, [rax*2 + 2]
mov rcx, qword [rbp + 0x60]
mov rdx, rcx
cmp rax, r15
jb 0x14022146d
mov rcx, qword [rcx - 8]
sub rdx, rcx
lea rax, [rdx - 8]
cmp rax, 0x1f
ja 0x14022188d
call fcn.140261814
mov rax, qword [rdi]
mov r8, qword [rax + 0x18]
lea rax, [rsp + 0x24]
mov qword [rsp + 0x50], rax
lea rdx, [rsp + 0x50]
call fcn.14022292c
lea rcx, vtable.Mso::Logging::StructuredObject_unsigned_int__1_.0
mov qword [rsp + 0x60], rcx
lea rcx, str.GeoID
mov qword [rsp + 0x68], rcx
mov dword [rsp + 0x70], eax
mov word [rsp + 0x74], si
lea rdx, [rsp + 0x60]
mov rcx, rdi
mov rax, r8
call qword [case.0x140118f85.0]
mov rax, qword [rdi]
mov rbx, qword [rax]
lea rax, [rbp]
mov qword [rsp + 0x58], rax
movdqa xmm0, xmmword [0x140333fe0]
movdqu xmmword [rbp + 0x90], xmm0
mov word [rbp + 0x80], si
lea rdx, str.DefaultWZ
lea rcx, [rbp + 0x80]
call fcn.14000b3a4
nop
lea r8, [rsp + 0x58]
lea rdx, [rbp + 0x80]
lea rcx, [rbp + 0x160]
call fcn.1402228ec
nop
cmp qword [rax + 0x18], r14
jb 0x14022151b
mov rax, qword [rax]
mov qword [rbp - 0x48], r13
lea rcx, [0x1402c6930]
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x38], rax
mov word [rbp - 0x30], si
lea rdx, [rbp - 0x48]
mov rcx, rdi
mov rax, rbx
call qword [case.0x140118f85.0]
nop
mov rax, qword [rbp + 0x178]
cmp rax, r14
jb 0x140221580
lea rax, [rax*2 + 2]
mov rcx, qword [rbp + 0x160]
mov rdx, rcx
cmp rax, r15
jb 0x14022157b
mov rcx, qword [rcx - 8]
sub rdx, rcx
lea rax, [rdx - 8]
cmp rax, 0x1f
ja 0x140221897
call fcn.140261814
movdqa xmm0, xmmword [0x140333fe0]
movdqu xmmword [rbp + 0x170], xmm0
mov word [rbp + 0x160], si
mov rax, qword [rbp + 0x98]
cmp rax, r14
jb 0x1402215d4
lea rax, [rax*2 + 2]
mov rcx, qword [rbp + 0x80]
mov rdx, rcx
cmp rax, r15
jb 0x1402215cf
mov rcx, qword [rcx - 8]
sub rdx, rcx
lea rax, [rdx - 8]
cmp rax, 0x1f
ja 0x1402218a1
call fcn.140261814
mov rax, qword [rdi]
mov rbx, qword [rax]
lea rax, [rbp + 0xc0]
mov qword [rsp + 0x28], rax
movdqa xmm0, xmmword [0x140333fe0]
movdqu xmmword [rbp + 0xb0], xmm0
mov word [rbp + 0xa0], si
lea rdx, str.DefaultWZ
lea rcx, [rbp + 0xa0]
call fcn.14000b3a4
lea r8, [rsp + 0x28]
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0x180]
call fcn.1402228ec
cmp qword [rax + 0x18], r14
jb 0x140221631
mov rax, qword [rax]
mov qword [rbp - 0x28], r13
lea rcx, str.C2RClientVer
mov qword [rbp - 0x20], rcx
mov qword [rbp - 0x18], rax
mov word [rbp - 0x10], si
lea rdx, [rbp - 0x28]
mov rcx, rdi
mov rax, rbx
call qword [case.0x140118f85.0]
mov rax, qword [rbp + 0x198]
cmp rax, r14
jb 0x140221695
lea rax, [rax*2 + 2]
mov rcx, qword [rbp + 0x180]
mov rdx, rcx
cmp rax, r15
jb 0x140221690
mov rcx, qword [rcx - 8]
sub rdx, rcx
lea rax, [rdx - 8]
cmp rax, 0x1f
ja 0x1402218ab
call fcn.140261814
movdqa xmm0, xmmword [0x140333fe0]
movdqu xmmword [rbp + 0x190], xmm0
mov word [rbp + 0x180], si
mov rax, qword [rbp + 0xb8]
cmp rax, r14
jb 0x1402216ea
lea rax, [rax*2 + 2]
mov rcx, qword [rbp + 0xa0]
mov rdx, rcx
cmp rax, r15
jb 0x1402216e4
mov rcx, qword [rcx - 8]
sub rdx, rcx
lea rax, [rdx - 8]
cmp rax, 0x1f
ja 0x1402218b5
call fcn.140261814
nop
mov rax, qword [rbp + 0x18]
cmp rax, r14
jb 0x140221721
lea rax, [rax*2 + 2]
mov rcx, qword [rbp]
mov rdx, rcx
cmp rax, r15
jb 0x14022171c
mov rcx, qword [rcx - 8]
sub rdx, rcx
lea rax, [rdx - 8]
cmp rax, 0x1f
ja 0x1402218bf
call fcn.140261814
mov qword [rbp + 0x10], rsi
mov qword [rbp + 0x18], 7
mov word [rbp], si
mov rax, qword [rbp + 0xd8]
cmp rax, r14
jb 0x14022176e
lea rax, [rax*2 + 2]
mov rcx, qword [rbp + 0xc0]
mov rdx, rcx
cmp rax, r15
jb 0x140221769
mov rcx, qword [rcx - 8]
sub rdx, rcx
lea rax, [rdx - 8]
cmp rax, 0x1f
ja 0x1402218c9
call fcn.140261814
movdqa xmm0, xmmword [0x140333fe0]
movdqu xmmword [rbp + 0xd0], xmm0
mov word [rbp + 0xc0], si
mov rax, qword [rbp + 0xf8]
cmp rax, r14
jb 0x1402217c2
lea rax, [rax*2 + 2]
mov rcx, qword [rbp + 0xe0]
mov rdx, rcx
cmp rax, r15
jb 0x1402217bd
mov rcx, qword [rcx - 8]
sub rdx, rcx
lea rax, [rdx - 8]
cmp rax, 0x1f
ja 0x1402218d3
call fcn.140261814
movdqa xmm0, xmmword [0x140333fe0]
movdqu xmmword [rbp + 0xf0], xmm0
mov word [rbp + 0xe0], si
mov rax, qword [rbp + 0x1b8]
cmp rax, r14
jb 0x140221812
mov rcx, qword [rbp + 0x1a0]
mov rdx, rcx
lea rax, [rax*2 + 2]
cmp rax, r15
jb 0x14022180d
mov rcx, qword [rcx - 8]
sub rdx, rcx
lea rax, [rdx - 8]
cmp rax, 0x1f
ja 0x14022183d
call fcn.140261814
mov rcx, qword [rbp + 0x1e0]
xor rcx, rsp
call fcn.1402361b0
lea r11, [rsp + 0x2f0]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop rdi
pop rbp
ret
call fcn.140261a5c
nop
jmp 0x140221846
nop
call fcn.140261a5c
nop
jmp 0x140221850
nop
call fcn.140147a48
nop
jmp 0x14022185a
nop
call fcn.140261a5c
nop
jmp 0x140221864
nop
call fcn.140261a5c
nop
jmp 0x14022186e
nop
call fcn.140261a5c
nop
jmp 0x140221878
nop
call fcn.140261a5c
nop
jmp 0x140221882
nop
call fcn.140261a5c
nop
jmp 0x14022188c
nop
call fcn.140261a5c
nop
jmp 0x140221896
nop
call fcn.140261a5c
nop
jmp 0x1402218a0
nop
call fcn.140261a5c
nop
jmp 0x1402218aa
nop
call fcn.140261a5c
nop
jmp 0x1402218b4
nop
call fcn.140261a5c
nop
jmp 0x1402218be
nop
call fcn.140261a5c
nop
jmp 0x1402218c8
nop
call fcn.140261a5c
nop
jmp 0x1402218d2
nop
call fcn.140261a5c
int3