Function at 0x14002bc00
Capabilities:
Get geographical location

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x68
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov r13, rcx
mov rbx, qword [rcx + 0x40]
lea rcx, [0x140005a50]
call sub.DUI70.dll_StrToID
test rbx, rbx
je 0x14002bc43
movzx edx, ax
mov rcx, rbx
call qword [sym.imp.DUI70.dll_public:_class_DirectUI::Element____ptr64___cdecl_DirectUI::Element::FindDescendent_unsigned_short_int____ptr64]
mov r14, rax
jmp 0x14002bc46
xor r14d, r14d
xor eax, eax
mov ecx, 0x8000ffff
test r14, r14
cmove eax, ecx
mov r8, qword [0x140049b20]
mov qword [rsp + 0x50], r8
mov rcx, qword [r8 + 0x2f8]
test rcx, rcx
jne 0x14002bc6f
xor esi, esi
jmp 0x14002bc7c
mov rsi, qword [r8 + 0x300]
sub rsi, rcx
sar rsi, 1
xor r15d, r15d
test eax, eax
js 0x14002bfcc
or r12d, 0xffffffff
cmp r15d, esi
jae 0x14002bfcc
mov edx, r15d
mov rcx, r8
call fcn.140015a2c
movzx ebx, ax
mov word [rsp + 0xb0], ax
and qword [rsp + 0xb8], 0
lea r9, [rsp + 0xb8]
xor r8d, r8d
mov rdx, r14
xor ecx, ecx
call qword [sym.imp.DUI70.dll_public:_static_long_int___cdecl_DirectUI::Element::Create_unsigned_int__class_DirectUI::Element____ptr64__unsigned_long_int____ptr64__class_DirectUI::Element____ptr64____ptr64_]
mov edi, eax
test eax, eax
js 0x14002bce6
lea rdx, [0x140005ab0]
mov rcx, qword [rsp + 0xb8]
call qword [sym.imp.DUI70.dll_public:_long_int___cdecl_DirectUI::Element::SetClass_unsigned_short_int_const____ptr64____ptr64]
mov edi, eax
and qword [rsp + 0x38], 0
test edi, edi
js 0x14002bd29
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
mov r9d, 2
xor r8d, r8d
mov edx, r9d
xor ecx, ecx
call qword [sym.imp.DUI70.dll_public:_static_long_int___cdecl_DirectUI::FlowLayout::Create_bool__unsigned_int__unsigned_int__unsigned_int__class_DirectUI::Layout____ptr64____ptr64_]
mov edi, eax
test eax, eax
js 0x14002bd29
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0xb8]
call qword [sym.imp.DUI70.dll_public:_long_int___cdecl_DirectUI::Element::SetLayout_class_DirectUI::Layout____ptr64____ptr64]
mov edi, eax
and qword [rsp + 0x40], 0
test edi, edi
js 0x14002be4b
mov rbp, qword [rsp + 0xb8]
lea rcx, [0x140048170]
mov rax, qword [0x140048170]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0xc0], rax
movzx ebx, bx
xor r9d, r9d
xor r8d, r8d
lea edi, [r9 + 3]
mov edx, edi
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
jne 0x14002bd7e
mov edi, 0x8000ffff
jmp 0x14002bd95
mov r9d, eax
mov r8d, ebx
lea rdx, [rsp + 0xc0]
mov ecx, edi
call fcn.140028bec
mov edi, eax
mov r8d, 2
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0xc0]
call fcn.140029b4c
nop
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.14001681c
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x14002bde0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rbx, qword [rsp + 0xc0]
test edi, edi
js 0x14002be16
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
and qword [rsp + 0x20], 0
mov r9, rbp
mov r8d, 1
lea rdx, [0x140005a70]
mov rcx, rbx
call fcn.14002bfe4
mov edi, eax
lea rdx, [rbx - 0x18]
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x14002be32
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
test edi, edi
js 0x14002be4b
mov rdx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0xb8]
call qword [sym.imp.DUI70.dll_public:_long_int___cdecl_DirectUI::Element::Add_class_DirectUI::Element____ptr64____ptr64]
mov edi, eax
and qword [rsp + 0x30], 0
test edi, edi
js 0x14002bf9c
mov r12, qword [rsp + 0xb8]
lea rcx, [0x140048170]
mov rax, qword [0x140048170]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0xc8], rbx
movzx ebp, word [rsp + 0xb0]
xor r9d, r9d
xor r8d, r8d
lea edi, [r9 + 2]
mov edx, edi
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
jne 0x14002bea5
mov edi, 0x8000ffff
jmp 0x14002bf17
mov r9d, eax
mov r8d, ebp
lea rdx, [rsp + 0xc8]
mov ecx, edi
call fcn.140028bec
mov edi, eax
test eax, eax
js 0x14002bf0f
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
and qword [rsp + 0x20], 0
mov r9, r12
mov r8d, 3
lea rdx, [0x140005a90]
mov rbx, qword [rsp + 0xc8]
mov rcx, rbx
call fcn.14002bfe4
mov edi, eax
test eax, eax
js 0x14002bf17
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x14002bf17
mov edx, 0x100000
call qword [sym.imp.DUI70.dll_public:_long_int___cdecl_DirectUI::Element::SetAccState_int____ptr64]
mov edi, eax
jmp 0x14002bf17
mov rbx, qword [rsp + 0xc8]
lea rdx, [rbx - 0x18]
or r12d, 0xffffffff
mov eax, r12d
lock xadd dword [rdx + 0x10], eax
add eax, r12d
test eax, eax
jg 0x14002bf37
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
test edi, edi
js 0x14002bf9c
mov rbx, qword [rsp + 0x30]
mov rdx, rbx
mov rcx, qword [rsp + 0xb8]
call qword [sym.imp.DUI70.dll_public:_long_int___cdecl_DirectUI::Element::Add_class_DirectUI::Element____ptr64____ptr64]
mov edi, eax
test eax, eax
js 0x14002bf9c
mov rax, qword [0x140049b20]
mov r8d, dword [rax + 0xf8]
mov rax, qword [r13 + 0x80]
cmp ebp, dword [rax + 0x19c]
jne 0x14002bf7d
mov qword [r13 + 0xa0], rbx
jmp 0x14002bfa5
mov ecx, ebp
call fcn.14002776c
cmp eax, r8d
jne 0x14002bfa5
cmp qword [r13 + 0xa0], 0
jne 0x14002bfa5
mov qword [r13 + 0xa0], rbx
jmp 0x14002bfa5
and qword [rsp + 0xb8], 0
test edi, edi
js 0x14002bfbc
mov rdx, qword [rsp + 0xb8]
mov rcx, r14
call qword [sym.imp.DUI70.dll_public:_long_int___cdecl_DirectUI::Element::Add_class_DirectUI::Element____ptr64____ptr64]
mov edi, eax
inc r15d
test edi, edi
mov r8, qword [rsp + 0x50]
jns 0x14002bc8b
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret