Function at 0x18002c960
Capabilities:
Get geographical location

Disassembly:
mov qword [rsp + 8], rbx
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x210]
sub rsp, 0x310
lea eax, [r9 + 0xc]
xor r11d, r11d
mov r13, rcx
mov rsi, r8
lea rcx, [0x180000000]
mov r15, rdx
cmp r9d, eax
jae 0x18002cc04
mov ebx, dword [rbp + 0x268]
lea edx, [r9 - 0x86]
mov edi, dword [rbp + 0x268]
lea r9d, [r11 + 0x5f]
mov r8d, reloc.oledlg.dll_OleUIChangeSourceA
mov dword [rsp + 0x30], edx
mov qword [rsp + 0x38], r8
lea r10, [0x180023de0]
mov r12d, 0x4641
lea r11d, [r8 + 0x4b]
lea r14d, [r8 + 0x47]
cmp edx, 0x1b
ja case.default.0x18002c9fe
mov ecx, dword [rcx + rdx*4 + 0x2cfb8]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
mov word [rsp + 0x41], r9w
mov word [rsp + 0x42], r11w
jmp case.0x18002c9fe.4
mov rax, qword [r13]
mov rcx, qword [rbp - 0x78]
mov qword [rax + 0x288], rcx
jmp case.0x18002c9fe.4
xor r14d, r14d
lea r12, [0x1800a9494]
nop
mov rax, qword [rbp + 0x278]
movsxd rcx, dword [r12]
mov rax, qword [rax]
movsx ebx, word [rax + rcx*2]
test ebx, ebx
jne 0x18002ca4e
inc r14d
jmp 0x18002caf3
mov esi, 0xe0
cmp esi, 0xe0
je 0x18002cab7
cmp esi, 0x172
je 0x18002caa5
cmp esi, 0x204
jne 0x18002cae1
sar ebx, 1
je 0x18002ca76
nop
inc edi
sar ebx, 1
jne 0x18002ca70
cmp edi, 0xa
jle 0x18002ca92
mov rax, qword [r13]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 6
mov rcx, qword [r13]
mov rax, qword [rcx]
call qword [rax]
shl r14d, 4
lea eax, [rdi + r14]
cdqe
inc dword [r15 + rax*4]
xor r14d, r14d
jmp 0x18002cae1
mov eax, ebx
mov edi, 1
neg eax
test ebx, ebx
cmovns eax, ebx
mov ebx, eax
jmp 0x18002cae1
cmp r14d, 0xf
jle 0x18002cae1
mov edx, dword [r15 + 0x3c0]
lea ecx, [r14 - 0x10]
shr ecx, 4
inc ecx
mov eax, ecx
neg eax
shl eax, 4
add r14d, eax
lea eax, [rcx + rdx]
mov dword [r15 + 0x3c0], eax
add esi, 0x92
cmp esi, 0x296
jb 0x18002ca53
add r12, 4
lea rax, [0x1800a9590]
cmp r12, rax
jl 0x18002ca30
mov edx, dword [rsp + 0x30]
lea rcx, [0x180000000]
mov r8, qword [rsp + 0x38]
test r14d, r14d
mov rsi, qword [rbp + 0x260]
mov r14d, 0x53
mov r12d, 0x4641
jle case.default.0x18002c9fe
inc dword [r15]
jmp case.default.0x18002c9fe
mov eax, ebx
xor edi, edi
neg eax
test ebx, ebx
cmovns eax, ebx
mov ebx, eax
jmp case.0x18002c9fe.4
mov rcx, qword [r13]
mov edx, 1
mov eax, dword [rcx + 0x38]
mov r9, qword [rcx + 8]
shl eax, 6
movsxd r8, eax
shl r8, 2
call qword [r9]
mov rcx, rax
xor r14d, r14d
mov rax, qword [r13]
mov qword [rax + 0xc0], rcx
mov rax, qword [r13]
mov rsi, qword [rax + 0xc0]
cmp dword [rax + 0x38], r14d
jle 0x18002cbb7
nop dword [rax]
mov edx, 0xffffffff
mov r8d, 0x100
mov rcx, rsi
call fcn.1800746e0
mov rax, qword [r13]
add rsi, 0x100
inc r14d
cmp r14d, dword [rax + 0x38]
jl 0x18002cb90
mov rsi, qword [rbp + 0x260]
mov r14d, 0x53
mov edx, dword [rsp + 0x30]
mov r8, qword [rsp + 0x38]
lea rcx, [0x180000000]
inc edx
lea r10, [0x180023de0]
mov r9d, 0x5f
mov dword [rsp + 0x30], edx
sub r8, 1
mov qword [rsp + 0x38], r8
lea r11d, [r9 - 8]
jne 0x18002c9e4
mov r9d, dword [rbp + 0x268]
xor r11d, r11d
movzx ebx, byte [rbp + 0x268]
lea r14d, [r9 - 0xb]
cmp r9d, r14d
jbe case.0x18002cc61.136
mov r15, qword [rsp + 0x50]
mov edx, 0x6c
mov r12, qword [rsp + 0x50]
mov edi, dword [rbp + 0x268]
lea r10d, [rdx - 0x3a]
lea r8d, [rdx + 0xb]
nop word [rax + rax]
lea eax, [r9 - 0x88]
cmp eax, 0xa
ja case.default.0x18002cc61
mov ecx, dword [rcx + rax*4 + 0x2d028]
lea rax, [0x180000000]
add rcx, rax
jmp rcx
mov eax, 0x44
mov word [rsp + 0x46], ax
mov eax, 0x65
mov dword [rsp + 0x47], 0x537349
mov word [rsp + 0x4a], ax
mov eax, 0x74
mov word [rsp + 0x4b], ax
jmp case.0x18002c9fe.4
test ebx, ebx
je 0x18002cc98
inc edi
sar ebx, 1
jne 0x18002cc92
cmp edi, 0xb
jle 0x18002ccbd
mov rax, qword [r13]
mov rcx, qword [rax]
mov dword [rcx + 0x28], 6
mov rcx, qword [r13]
mov rax, qword [rcx]
call qword [rax]
mov edx, dword [rsp + 0x30]
mov r8, qword [rsp + 0x38]
movsxd rax, edi
inc dword [rsi + rax*4]
jmp case.0x18002c9fe.4
mov rax, qword [rbp + 0x278]
mov rax, qword [rax]
movsx ebx, word [rax]
mov rax, qword [rbp + 0x270]
sub ebx, dword [rax]
jmp case.0x18002c9fe.4
mov word [rsp + 0x43], r14w
mov word [rsp + 0x44], r12w
jmp case.0x18002c9fe.4
mov rax, qword [rbp - 0x78]
xor ecx, ecx
mov qword [rax], r10
mov qword [rax + 0x38], rcx
mov qword [rax + 0x40], rcx
mov qword [rax + 0x48], rcx
mov qword [rax + 0x50], rcx
jmp case.0x18002c9fe.4
mov rcx, qword [r13]
mov edx, 1
mov rax, qword [rcx + 8]
lea r8d, [rdx + 0x5f]
call qword [rax]
mov qword [rbp - 0x78], rax
jmp 0x18002cbc4
mov word [rsp + 0x40], r9w
jmp case.0x18002c9fe.4
mov rax, qword [rbp + 0x278]
lea rdx, [rbp]
mov ecx, dword [r13]
xor r9d, r9d
inc ecx
xor r8d, r8d
mov eax, dword [rax]
mov dword [rsp + 0x50], eax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
call r15
cmp eax, 0xffffffff
jne 0x18002cf63
mov esi, 0x35
cmp esi, 0x35
je 0x18002cd85
cmp esi, 0xa5a
jne 0x18002cdb6
mov al, 1
jmp 0x18002cf9a
mov r9d, 0x64
lea r8, [rbp - 0x70]
mov edx, 0x1009
lea ecx, [r9 + 0x1b]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x18002cdb6
lea r8, [rbp - 0x70]
mov edx, 0x1009
mov ecx, 0x7f
call qword [sym.imp.KERNEL32.dll_SetLocaleInfoW]
add esi, 0xa25
cmp esi, 0x144a
jbe 0x18002cd71
jmp 0x18002cf63
mov rcx, qword [r13]
lea rdx, [rbp]
call r12
test eax, eax
sete bl
jmp 0x18002cf63
mov dword [rsp + 0x76], 0x33005f
mov word [rsp + 0x7a], r10w
mov dword [rsp + 0x7c], 0x64002e
mov word [rbp - 0x80], dx
jmp case.default.0x18002cc61
mov word [rbp - 0x7e], dx
jmp case.default.0x18002cc61
mov r8d, 1
mov word [rsp + 0x58], r11w
lea rdx, [0x1800acf34]
lea rcx, [rsp + 0x58]
call fcn.180076a10
lea rdx, [0x1800acf38]
lea rcx, [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
mov eax, dword [0x1800acf3c]
mov dword [rsp + 0x5c], eax
movzx eax, word [0x1800acf40]
mov word [rsp + 0x60], ax
jmp 0x18002cf63
mov word [rsp + 0x70], r8w
mov dword [rsp + 0x72], 0x320073
jmp case.default.0x18002cc61
mov r8d, 0xa
lea rdx, [rsp + 0x60]
lea ecx, [r8 + 0x16]
call fcn.180077a4c
mov eax, dword [0x1800acf44]
lea r9, [rsp + 0x40]
mov dword [rsp + 0x64], eax
lea r8, [rsp + 0x70]
mov eax, dword [0x1800acf4c]
xor edx, edx
mov dword [rsp + 0x68], eax
mov ecx, 0xbd
movzx eax, word [0x1800acf50]
mov word [rsp + 0x6c], ax
xor eax, eax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rax
call fcn.1800282f0
mov r12, rax
jmp 0x18002cf63
mov word [rbp - 0x7c], r11w
jmp case.default.0x18002cc61
mov ecx, r11d
mov edx, 0x10d
mov dword [rbp], ecx
cmp edx, 0x10d
je 0x18002cf04
cmp edx, 0x2f49
jne 0x18002cf2a
cmp edi, ecx
jne 0x18002cf2a
cmp ecx, 0x40
jae 0x18002cf2a
mov rax, qword [r13]
mov ecx, edi
mov qword [rbp + rcx*8 + 8], rax
mov ecx, dword [rbp]
inc ecx
mov dword [rbp], ecx
jmp 0x18002cf2a
mov edi, r11d
test ecx, ecx
je 0x18002cf1f
mov rdx, qword [r13]
nop
mov eax, edi
cmp qword [rbp + rax*8 + 8], rdx
je 0x18002cf1f
inc edi
cmp edi, ecx
jb 0x18002cf10
mov edx, 0x10d
mov r9d, 0x8b
add edx, 0x2e3c
cmp edx, 0x5c78
jbe 0x18002ced6
mov qword [rsp + 0x50], r11
jmp 0x18002cf74
mov qword [rsp + 0x28], r11
lea r8, [rsp + 0x58]
mov r9d, 0x12
mov qword [rsp + 0x20], r11
xor edx, edx
mov ecx, 0xbd
call fcn.1800282f0
mov r15, rax
mov r9d, dword [rbp + 0x268]
mov r10d, 0x32
lea r8d, [r10 + 0x45]
mov edx, 0x6c
dec r9d
mov dword [rbp + 0x268], r9d
cmp r9d, r14d
jbe case.0x18002cc61.136
xor r11d, r11d
lea rcx, [0x180000000]
jmp 0x18002cc40
movzx eax, bl
mov rbx, qword [rsp + 0x350]
add rsp, 0x310
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret