Function at 0x134a6b0
Capabilities:
Get geographical location
Get thread local storage value

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x20], rsi
mov r15, rdx
mov ebp, ecx
xor r12d, r12d
mov qword [rax - 0x40], r12
mov rax, qword [0x039f1180]
mov ecx, dword [rax + 8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x140de4a
lea rdi, [rax + 0x20]
jmp 0x134a700
mov qword [rsp + 0x38], rdi
mov rcx, qword [rdi + 0x30]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VarBstrFromCy]
mov rsi, rax
mov qword [rsp + 0x40], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1001
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
movsxd rbx, eax
test eax, eax
je 0x140de52
mov rcx, qword [rdi + 0x30]
mov r14, rbx
movabs rax, 0x3fffffffffffffff
cmp rbx, rax
jae 0x140e11e
lea r13, [rbx + rbx]
mov rax, qword [rcx]
mov rdx, r13
call qword [rax + SafeArrayCopy]
mov r12, rax
test rax, rax
je 0x140e11b
mov r8, r13
xor edx, edx
mov rcx, rax
call sub.MSVCR80.dll_memset
mov r9d, ebx
mov r8, r12
mov edx, 0x1001
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
je 0x140df46
cmp ebp, 0x7f
je 0x140e102
mov rdx, qword [r15]
mov al, byte [rdx - 5]
and eax, 7
lea rcx, [rax + rax*2]
lea rax, [0x01173e98]
movzx eax, byte [rax + rcx*2 + 2]
sub rdx, rax
mov rbx, qword [rdx]
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_ConvertDefaultLocale]
cmp ebp, eax
jne 0x140e03b
xor ebp, ebp
mov ebx, ebp
test ebx, ebx
js 0x140e0f0
mov word [r12 + r14*2 - 2], 0
mov r9d, 7
xor r8d, r8d
mov rdx, r12
mov rcx, r15
call fcn.0118a4d0
mov ebx, eax
test eax, eax
cmovns ebx, ebp
test ebx, ebx
js 0x140e109
mov ebx, ebp
mov rcx, qword [rdi + 0x30]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + 0x78]
jmp 0x134a810
mov eax, ebx
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov rdi, r12
jmp 0x134a700
lea rcx, [rsp + 0x90]
call fcn.0116a950
nop
mov rdx, qword [r15]
mov al, byte [rdx - 5]
and eax, 7
lea rcx, [rax + rax*2]
lea rax, [0x01173e98]
movzx eax, byte [rax + rcx*2 + 2]
sub rdx, rax
xor r8d, r8d
mov rdx, qword [rdx]
lea rcx, [rsp + 0x90]
call fcn.01174500
mov ebx, eax
test eax, eax
jns 0x140deb6
lea rcx, [rsp + 0x90]
call fcn.0116a920
nop
mov rcx, qword [rdi + 0x30]
mov r8, qword [rcx]
mov rdx, rsi
call qword [r8 + 0x78]
jmp 0x134a810
xor r8d, r8d
mov edx, ebp
lea rcx, [rsp + 0x90]
call fcn.0132a760
mov ebx, eax
test eax, eax
jns 0x140deee
lea rcx, [rsp + 0x90]
call fcn.0116a920
nop
mov rcx, qword [rdi + 0x30]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + 0x78]
jmp 0x134a810
mov r8, qword [rsp + 0x90]
test r8, r8
je 0x140df0d
movzx eax, byte [r8 - 5]
test al, 0x40
jne 0x140df08
test al, 0x20
je 0x140df10
mov r8, qword [r8]
jmp 0x140df10
mov r8, r12
xor r9d, r9d
lea rdx, [0x0156f358]
mov ecx, 0xc1010015
call fcn.017ee830
mov ebx, eax
lea rcx, [rsp + 0x90]
call fcn.0116a920
nop
mov rcx, qword [rdi + 0x30]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + 0x78]
jmp 0x134a810
lea rcx, [rsp + 0x90]
call fcn.0116a950
nop
mov rdx, qword [r15]
mov al, byte [rdx - 5]
and eax, 7
lea rcx, [rax + rax*2]
lea rax, [0x01173e98]
movzx eax, byte [rax + rcx*2 + 2]
sub rdx, rax
xor r8d, r8d
mov rdx, qword [rdx]
lea rcx, [rsp + 0x90]
call fcn.01174500
mov ebx, eax
test eax, eax
jns 0x140dfa9
lea rcx, [rsp + 0x90]
call fcn.0116a920
nop
mov rcx, qword [rdi + 0x30]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + 0x78]
jmp 0x134a810
xor r8d, r8d
mov edx, ebp
lea rcx, [rsp + 0x90]
call fcn.0132a760
mov ebx, eax
test eax, eax
jns 0x140dfe1
lea rcx, [rsp + 0x90]
call fcn.0116a920
nop
mov rcx, qword [rdi + 0x30]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + 0x78]
jmp 0x134a810
mov r8, qword [rsp + 0x90]
test r8, r8
je 0x140e000
movzx eax, byte [r8 - 5]
test al, 0x40
jne 0x140dffb
test al, 0x20
je 0x140e005
mov r8, qword [r8]
jmp 0x140e005
xor ebp, ebp
mov r8, rbp
xor r9d, r9d
lea rdx, [0x0156f358]
mov ecx, 0xc1010015
call fcn.017ee830
mov ebx, eax
lea rcx, [rsp + 0x90]
call fcn.0116a920
nop
mov rcx, qword [rdi + 0x30]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + 0x78]
jmp 0x134a810
lea rcx, [rsp + 0x90]
call fcn.0116a950
nop
xor r8d, r8d
mov rdx, rbx
lea rcx, [rsp + 0x90]
call fcn.01174500
mov ebx, eax
test eax, eax
jns 0x140e076
lea rcx, [rsp + 0x90]
call fcn.0116a920
xor ebp, ebp
jmp 0x134a7cc
xor r8d, r8d
mov edx, ebp
lea rcx, [rsp + 0x90]
call fcn.0132a760
mov ebx, eax
test eax, eax
jns 0x140e0a2
lea rcx, [rsp + 0x90]
call fcn.0116a920
xor ebp, ebp
jmp 0x134a7cc
mov r8, qword [rsp + 0x90]
test r8, r8
je 0x140e0c3
movzx eax, byte [r8 - 5]
test al, 0x40
jne 0x140e0bc
test al, 0x20
je 0x140e0bf
mov r8, qword [r8]
xor ebp, ebp
jmp 0x140e0c8
xor ebp, ebp
mov r8, rbp
xor r9d, r9d
lea rdx, [0x0156f358]
mov ecx, 0xc1010015
call fcn.017ee830
mov ebx, eax
lea rcx, [rsp + 0x90]
call fcn.0116a920
jmp 0x134a7cc
mov rcx, qword [rdi + 0x30]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + 0x78]
jmp 0x134a810
xor ebp, ebp
jmp 0x134a7d4
mov rcx, qword [rdi + 0x30]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + 0x78]
jmp 0x134a810
xor r12d, r12d
mov qword [rsp + 0x20], 0x1000000f
xor r9d, r9d
xor r8d, r8d
mov edx, r12d
mov ecx, 0xc1030001
call fcn.0124e580
mov ebx, eax
mov rcx, qword [rdi + 0x30]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + 0x78]
nop
jmp 0x134a810