Function at 0x1400e9a10
Capabilities:
Get geographical location

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xa0]
sub rsp, 0x1a0
mov qword [rbp + 0x28], 0xfffffffffffffffe
mov qword [rsp + 0x1f0], rbx
mov rax, qword [0x141992390]
xor rax, rsp
mov qword [rbp + 0x90], rax
mov rsi, r9
movsxd r12, r8d
mov rdi, rdx
mov r13, rcx
mov qword [rbp + 0x48], rdx
mov qword [rbp + 0x30], r9
xor r15d, r15d
mov dword [rbp - 0x10], r15d
mov eax, dword [0x1419999e8]
cmp eax, 0xfffffffe
jg 0x1400e9a77
mov r14d, r15d
jmp 0x1400e9aa5
mov ecx, dword [0x14199a320]
mov rax, qword gs:[0x58]
mov edx, 8
mov rax, qword [rax + rcx*8]
mov ecx, dword [rdx + rax]
cmp dword [0x1419999fc], ecx
jg 0x1400ea505
lea r14, [0x1419999f0]
cmp r12d, 0x27
ja case.0x1400e9ac1.27
lea rdx, [0x140000000]
mov ecx, dword [rdx + r12*4 + 0xea564]
add rcx, rdx
jmp rcx
xor r9d, r9d
lea r8d, [r9 + 0xe]
lea rdx, [rsp + 0x70]
mov rcx, r14
call fcn.1400e9090
mov rax, qword [rsp + 0x70]
cmp dword [rax + 4], 0
je 0x1400e9aeb
mov rcx, qword [rax + 0x10]
movzx r15d, word [rax + rcx]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400e9b09
cmp ecx, 0xffffffff
je 0x1400e9b1d
mov ebx, 0xffffffff
mov rax, qword [rsp + 0x70]
lock xadd dword [rax], ebx
cmp ebx, 1
jne 0x1400e9b1d
mov rcx, qword [rsp + 0x70]
mov r8d, 8
lea edx, [r8 - 6]
call fcn.140049bf0
movzx edx, r15w
mov rcx, rdi
call fcn.14007d920
jmp 0x1400ea410
xor r9d, r9d
lea r8d, [r9 + 0xf]
lea rdx, [rsp + 0x78]
mov rcx, r14
call fcn.1400e9090
mov rax, qword [rsp + 0x78]
cmp dword [rax + 4], 0
je 0x1400e9b56
mov rcx, qword [rax + 0x10]
movzx r15d, word [rax + rcx]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400e9b74
cmp ecx, 0xffffffff
je 0x1400e9b1d
mov ebx, 0xffffffff
mov rax, qword [rsp + 0x78]
lock xadd dword [rax], ebx
cmp ebx, 1
jne 0x1400e9b1d
mov rcx, qword [rsp + 0x78]
jmp 0x1400e9b0e
xor r9d, r9d
lea r8d, [r9 + 0x51]
lea rdx, [rbp - 0x80]
mov rcx, r14
call fcn.1400e9090
mov rax, qword [rbp - 0x80]
cmp dword [rax + 4], 0
je 0x1400e9ba1
mov rcx, qword [rax + 0x10]
movzx r15d, word [rax + rcx]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400e9bc6
cmp ecx, 0xffffffff
je 0x1400e9b1d
mov ebx, 0xffffffff
mov rax, qword [rbp - 0x80]
lock xadd dword [rax], ebx
cmp ebx, 1
jne 0x1400e9b1d
mov rcx, qword [rbp - 0x80]
jmp 0x1400e9b0e
xor r9d, r9d
lea r8d, [r9 + 0x50]
lea rdx, [rbp - 0x78]
mov rcx, r14
call fcn.1400e9090
mov rax, qword [rbp - 0x78]
cmp dword [rax + 4], 0
je 0x1400e9bf5
mov rcx, qword [rax + 0x10]
movzx r15d, word [rax + rcx]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400e9c1a
cmp ecx, 0xffffffff
je 0x1400e9b1d
mov ebx, 0xffffffff
mov rax, qword [rbp - 0x78]
lock xadd dword [rax], ebx
cmp ebx, 1
jne 0x1400e9b1d
mov rcx, qword [rbp - 0x78]
jmp 0x1400e9b0e
xor r8d, r8d
mov rdx, rdi
mov rcx, r14
call fcn.1400e8b00
jmp 0x1400ea410
mov r8d, 1
mov rdx, rdi
mov rcx, r14
call fcn.1400e8b00
jmp 0x1400ea410
xor r8d, r8d
mov rdx, rdi
mov rcx, r14
call fcn.1400ea7d0
jmp 0x1400ea410
mov r8d, 1
mov rdx, rdi
mov rcx, r14
call fcn.1400ea7d0
jmp 0x1400ea410
xor r8d, r8d
mov rdx, rdi
mov rcx, r14
call fcn.1400e8ce0
jmp 0x1400ea410
mov r8d, 1
mov rdx, rdi
mov rcx, r14
call fcn.1400e8ce0
jmp 0x1400ea410
xor edx, edx
mov rcx, rsi
call fcn.140081540
mov r8d, eax
xor r9d, r9d
mov rdx, rdi
mov rcx, r14
call fcn.1400e8e40
jmp 0x1400ea410
xor edx, edx
mov rcx, rsi
call fcn.140081540
mov r8d, eax
mov r9d, 1
mov rdx, rdi
mov rcx, r14
call fcn.1400e8e40
jmp 0x1400ea410
xor edx, edx
mov rcx, rsi
call fcn.140081540
mov r8d, eax
xor r9d, r9d
mov rdx, rdi
mov rcx, r14
call fcn.1400e9920
jmp 0x1400ea410
xor edx, edx
mov rcx, rsi
call fcn.140081540
mov r8d, eax
mov r9d, 1
mov rdx, rdi
mov rcx, r14
call fcn.1400e9920
jmp 0x1400ea410
lea rdx, [rbp + 0x38]
mov rcx, rsi
call fcn.1400812e0
mov r8, rax
mov r9d, 1
mov rdx, rdi
mov rcx, r14
call fcn.1400eb190
jmp 0x1400ea410
lea rdx, [rbp + 0x40]
mov rcx, rsi
call fcn.1400812e0
mov r8, rax
xor r9d, r9d
mov rdx, rdi
mov rcx, r14
call fcn.1400eb190
jmp 0x1400ea410
lea rdx, [rbp - 0xc]
mov rcx, rsi
call fcn.140081db0
mov r8, rax
mov r9d, 1
mov rdx, rdi
mov rcx, r14
call fcn.1400eb4f0
jmp 0x1400ea410
lea rdx, [rbp - 8]
mov rcx, rsi
call fcn.140081db0
mov r8, rax
xor r9d, r9d
mov rdx, rdi
mov rcx, r14
call fcn.1400eb4f0
jmp 0x1400ea410
lea rdx, [rbp]
mov rcx, rsi
call fcn.1400813c0
nop
mov r9d, 1
mov r8, rax
mov rdx, rdi
mov rcx, r14
call fcn.1400eb360
nop
lea rcx, [rbp]
call fcn.140058820
jmp 0x1400ea410
lea rdx, [rbp + 8]
mov rcx, rsi
call fcn.1400813c0
nop
xor r9d, r9d
mov r8, rax
mov rdx, rdi
mov rcx, r14
call fcn.1400eb360
nop
lea rcx, [rbp + 8]
call fcn.140058820
jmp 0x1400ea410
lea rdx, [rsp + 0x40]
mov rcx, r14
call fcn.1400ec440
movzx edx, word [rax]
mov rcx, rdi
call fcn.14007d920
jmp 0x1400ea410
mov edx, 0x400
lea rcx, [rbp - 0x70]
call fcn.1400e9260
nop
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.140088180
nop
mov rax, qword [rbp - 0x70]
mov ecx, dword [rax]
mov ebx, 0xffffffff
test ecx, ecx
je 0x1400e9e6b
cmp ecx, ebx
je 0x1400e9e7d
mov ecx, ebx
mov rax, qword [rbp - 0x70]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1400e9e7d
mov edx, 1
lea r8d, [rdx + 7]
mov rcx, qword [rbp - 0x70]
call fcn.140049bf0
lea r9, [rsp + 0x48]
lea r8, [rbp - 4]
lea rdx, [rsp + 0x44]
lea rcx, [rsp + 0x20]
call fcn.14009aa60
test r12d, r12d
jne 0x1400e9ee5
mov edx, dword [rsp + 0x44]
mov rcx, rdi
call fcn.14007d850
nop
mov rax, qword [rsp + 0x20]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400e9ecd
cmp ecx, 0xffffffff
je 0x1400ea410
mov rax, qword [rsp + 0x20]
lock xadd dword [rax], ebx
cmp ebx, 1
jne 0x1400ea410
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rsp + 0x20]
call fcn.140049bf0
jmp 0x1400ea410
mov edx, dword [rsp + 0x48]
test edx, edx
jne 0x1400e9f57
mov rax, qword [r13]
lea rdx, [rbp + 0x10]
mov rcx, r13
call qword [rax + 0x10]
nop
mov rcx, rax
call fcn.1400986a0
mov edx, eax
mov rcx, rdi
call fcn.14007d850
nop
lea rcx, [rbp + 0x10]
call fcn.140097990
nop
mov rax, qword [rsp + 0x20]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400e9f3f
cmp ecx, 0xffffffff
je 0x1400ea410
mov rax, qword [rsp + 0x20]
lock xadd dword [rax], ebx
cmp ebx, 1
jne 0x1400ea410
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rsp + 0x20]
call fcn.140049bf0
jmp 0x1400ea410
mov rcx, rdi
call fcn.14007d850
nop
mov rax, qword [rsp + 0x20]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400e9f86
cmp ecx, 0xffffffff
je 0x1400ea410
mov rax, qword [rsp + 0x20]
lock xadd dword [rax], ebx
cmp ebx, 1
jne 0x1400ea410
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rsp + 0x20]
call fcn.140049bf0
jmp 0x1400ea410
mov r9d, 2
lea r8, [rsp + 0x4c]
lea edx, [r9 + 0xb]
mov ecx, dword [r14]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je case.0x1400e9ac1.33
mov ebx, 0xffffffff
mov r8d, ebx
lea rdx, [rsp + 0x4c]
lea rcx, [rbp - 0x68]
call fcn.140040590
nop
mov rcx, qword [rax]
mov qword [rsp + 0x28], rcx
lea r12, [0x1401a1e20]
mov qword [rax], r12
mov rax, qword [rbp - 0x68]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400ea004
cmp ecx, ebx
je 0x1400ea017
mov ecx, ebx
mov rax, qword [rbp - 0x68]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1400ea017
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x68]
call fcn.140049bf0
nop
mov r15d, 1
mov dword [rbp - 0x20], r15d
lea rax, [0x1402306f8]
mov qword [rbp - 0x18], rax
movaps xmm0, xmmword [rbp - 0x20]
movdqa xmmword [rbp - 0x20], xmm0
lea rdx, [rbp - 0x20]
lea rcx, [rsp + 0x28]
call fcn.14003cdb0
test al, al
je 0x1400ea091
mov edx, r15d
mov rcx, rdi
call fcn.14007d850
nop
mov rax, qword [rsp + 0x28]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400ea079
cmp ecx, 0xffffffff
je 0x1400ea410
mov rax, qword [rsp + 0x28]
lock xadd dword [rax], ebx
cmp ebx, r15d
jne 0x1400ea410
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rsp + 0x28]
call fcn.140049bf0
jmp 0x1400ea410
mov rax, qword [rsp + 0x28]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400ea0af
cmp ecx, 0xffffffff
je case.0x1400e9ac1.33
mov rax, qword [rsp + 0x28]
lock xadd dword [rax], ebx
cmp ebx, 1
jne case.0x1400e9ac1.33
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rsp + 0x28]
call fcn.140049bf0
xor edx, edx
mov rcx, rdi
call fcn.14007d850
jmp 0x1400ea410
mov r9d, 0xf
lea r8, [rbp + 0x50]
lea edx, [r9 + 0x19]
mov ecx, dword [r14]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je case.0x1400e9ac1.27
mov ebx, 0xffffffff
mov r8d, ebx
lea rdx, [rbp + 0x50]
lea rcx, [rbp - 0x60]
call fcn.140040590
nop
mov rcx, qword [rax]
mov qword [rsp + 0x30], rcx
lea r12, [0x1401a1e20]
mov qword [rax], r12
mov rax, qword [rbp - 0x60]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400ea135
cmp ecx, ebx
je 0x1400ea148
mov ecx, ebx
mov rax, qword [rbp - 0x60]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1400ea148
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rbp - 0x60]
call fcn.140049bf0
nop
lea rdx, [rsp + 0x30]
mov rcx, rdi
call fcn.14007d740
nop
mov rax, qword [rsp + 0x30]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400ea17c
cmp ecx, 0xffffffff
je 0x1400ea410
mov rax, qword [rsp + 0x30]
lock xadd dword [rax], ebx
cmp ebx, 1
jne 0x1400ea410
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rsp + 0x30]
call fcn.140049bf0
jmp 0x1400ea410
mov r9d, 0xf
lea r8, [rbp + 0x70]
lea edx, [r9 + 0x1a]
mov ecx, dword [r14]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je case.0x1400e9ac1.27
mov ebx, 0xffffffff
mov r8d, ebx
lea rdx, [rbp + 0x70]
lea rcx, [rsp + 0x50]
call fcn.140040590
nop
mov rcx, qword [rax]
mov qword [rsp + 0x38], rcx
lea r12, [0x1401a1e20]
mov qword [rax], r12
mov rax, qword [rsp + 0x50]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400ea1fb
cmp ecx, ebx
je 0x1400ea20f
mov ecx, ebx
mov rax, qword [rsp + 0x50]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1400ea20f
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rsp + 0x50]
call fcn.140049bf0
nop
lea rdx, [rsp + 0x38]
mov rcx, rdi
call fcn.14007d740
nop
mov rax, qword [rsp + 0x38]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400ea243
cmp ecx, 0xffffffff
je 0x1400ea410
mov rax, qword [rsp + 0x38]
lock xadd dword [rax], ebx
cmp ebx, 1
jne 0x1400ea410
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rsp + 0x38]
call fcn.140049bf0
jmp 0x1400ea410
mov r9d, 4
lea r8, [rbp + 0x48]
mov edx, 0x100c
mov ecx, dword [r14]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x1400ea2e5
mov ebx, 0xffffffff
mov r8d, ebx
lea rdx, [rbp + 0x48]
lea rcx, [rsp + 0x58]
call fcn.1400043b0
nop
xor edx, edx
lea r8d, [rbx + 0xb]
mov rcx, rax
call fcn.140045970
lea edx, [rax + 1]
mov rcx, rdi
call fcn.14007d900
nop
mov rax, qword [rsp + 0x58]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400ea2cd
cmp ecx, ebx
je 0x1400ea410
mov rax, qword [rsp + 0x58]
lock xadd dword [rax], ebx
cmp ebx, 1
jne 0x1400ea410
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rsp + 0x58]
call fcn.140049bf0
jmp 0x1400ea410
mov edx, 1
mov rcx, rdi
call fcn.14007d850
jmp 0x1400ea410
xor edx, edx
mov rcx, rsi
call fcn.140081e80
mov r8d, eax
mov rdx, rdi
mov rcx, r14
call fcn.1400e8790
jmp 0x1400ea410
call fcn.14009bc80
mov ebx, eax
mov rcx, rsi
call fcn.140082260
cmp ebx, eax
jne 0x1400ea35c
mov rcx, rsi
call fcn.14007f450
mov rbx, rax
mov rdx, rax
lea rcx, [rbp - 0x40]
call fcn.14007d4b0
mov rcx, qword [rbx + 0x10]
mov qword [rbp - 0x30], rcx
mov eax, dword [rcx]
inc eax
cmp eax, 1
jbe 0x1400ea3cc
mov r15d, 1
lock xadd dword [rcx], r15d
jmp 0x1400ea3cc
mov dword [rbp - 0x50], 0x80000000
mov qword [rbp - 0x58], r15
lea r12, [0x1401a1e20]
mov qword [rbp - 0x48], r12
lea r8, [rbp - 0x58]
mov edx, ebx
mov rcx, rsi
call fcn.14007f7f0
test al, al
je 0x1400ea3b3
mov rax, qword [rbp - 0x58]
mov qword [rbp - 0x40], rax
mov eax, dword [rbp - 0x50]
mov dword [rbp - 0x38], eax
mov dword [rbp + 0x20], 0x80000000
mov qword [rbp + 0x18], r15
movups xmm0, xmmword [rbp + 0x18]
movups xmmword [rbp - 0x58], xmm0
mov rax, qword [rbp - 0x48]
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x48], r12
jmp 0x1400ea3c2
mov dword [rbp - 0x38], 0x80000000
mov qword [rbp - 0x40], r15
mov qword [rbp - 0x30], r12
lea rcx, [rbp - 0x58]
call fcn.1400979c0
nop
lea r8, [rbp - 0x40]
mov rdx, rdi
mov rcx, r14
call fcn.1400ea9b0
nop
lea rcx, [rbp - 0x40]
call fcn.1400979c0
jmp 0x1400ea410
mov rdx, rdi
mov rcx, r14
call fcn.1400eb6e0
jmp 0x1400ea410
call qword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov dword [r14], eax
mov dword [r14 + 4], r15d
mov word [r14 + 8], r15w
mov dword [rdi + 8], 0x80000000
mov qword [rdi], r15
mov rcx, rsi
call fcn.14007da90
mov rax, rdi
mov rcx, qword [rbp + 0x90]
xor rcx, rsp
call fcn.140121c90
mov rbx, qword [rsp + 0x1f0]
add rsp, 0x1a0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
xor r9d, r9d
lea r8d, [r9 + 4]
lea rdx, [rsp + 0x60]
mov rcx, r14
call fcn.1400e9090
nop
mov rdx, rax
mov rcx, rdi
call fcn.14007d740
nop
mov rax, qword [rsp + 0x60]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400ea489
cmp ecx, 0xffffffff
je 0x1400ea410
mov ebx, 0xffffffff
mov rax, qword [rsp + 0x60]
lock xadd dword [rax], ebx
cmp ebx, 1
jne 0x1400ea410
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rsp + 0x60]
call fcn.140049bf0
jmp 0x1400ea410
xor r9d, r9d
lea r8d, [r9 + 8]
lea rdx, [rsp + 0x68]
mov rcx, r14
call fcn.1400e9090
nop
mov rdx, rax
mov rcx, rdi
call fcn.14007d740
nop
mov rax, qword [rsp + 0x68]
mov ecx, dword [rax]
test ecx, ecx
je 0x1400ea4ed
cmp ecx, 0xffffffff
je 0x1400ea410
mov ebx, 0xffffffff
mov rax, qword [rsp + 0x68]
lock xadd dword [rax], ebx
cmp ebx, 1
jne 0x1400ea410
mov edx, 2
lea r8d, [rdx + 6]
mov rcx, qword [rsp + 0x68]
call fcn.140049bf0
jmp 0x1400ea410
lea rcx, [0x1419999fc]
call fcn.140122470
cmp dword [0x1419999fc], 0xffffffff
jne 0x1400e9a9e
mov dword [0x1419999f4], r15d
mov word [0x1419999f8], r15w
call qword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
mov dword [0x1419999f0], eax
mov dword [0x1419999e8], 0xffffffff
lea rcx, [0x140156240]
call fcn.140121f60
lea rcx, [0x1419999fc]
call fcn.140122410
jmp 0x1400e9a9e