Function at 0x10001ae50
Capabilities:
Identify system language via api

Disassembly:
sub rsp, 0x58
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x78], rdi
mov edi, r8d
movzx ebx, dx
mov esi, ecx
test dx, dx
jne 0x10001afab
call fcn.10002cc00
test eax, eax
je 0x10001b0bd
call qword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
movzx ebx, ax
movzx ecx, ax
call fcn.10002e700
test eax, eax
je 0x10001aebb
movzx r8d, bx
lea rdx, [0x100004020]
mov ecx, 1
call fcn.1000193f0
xor eax, eax
jmp 0x10001b0bf
test edi, edi
je 0x10001aedb
movzx r8d, bx
lea rdx, [0x100003fa0]
mov ecx, 1
call fcn.1000193f0
xor eax, eax
jmp 0x10001b0bf
movzx r8d, bx
lea rdx, [0x100003f20]
mov ecx, 3
call fcn.1000193f0
test esi, esi
jne 0x10001afa1
lea rcx, [0x1000a9318]
mov rax, qword [0x1000a9318]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x38], rax
lea rcx, [0x1000a9318]
mov rax, qword [0x1000a9318]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
mov edx, 0x1388
lea rcx, [rsp + 0x38]
call fcn.100016060
mov edx, 0x13c7
lea rcx, [rsp + 0x40]
call fcn.100016060
lea r9d, [rsi + 0x30]
mov r8, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
mov rdx, rbx
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
nop
lea rdx, [rbx - 0x18]
mov ebx, 0xffffffff
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x10001af84
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x10001afa1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, 0x717
jmp 0x10001b0bf
call qword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
cmp ax, bx
je 0x10001afe8
movzx edi, bx
mov edx, 1
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_IsValidLocale]
test eax, eax
je 0x10001afd4
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetThreadLocale]
jmp 0x10001afe8
mov r8d, edi
lea rdx, [0x100003ea0]
mov ecx, 2
call fcn.1000193f0
mov word [rsp + 0x30], bx
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r9, [0x100013880]
mov edx, 0x10
xor ecx, ecx
lea r8d, [rdx - 0xf]
call qword [sym.imp.KERNEL32.dll_EnumResourceLanguagesW]
test eax, eax
je 0x10001b02f
cmp bx, word [rsp + 0x30]
jne 0x10001b02f
movzx r8d, bx
lea rdx, [0x100003e20]
mov ecx, 2
call fcn.1000193f0
call fcn.10002cc00
test eax, eax
je 0x10001b0a4
movzx ecx, bx
call fcn.10002ee80
test eax, eax
je 0x10001b08b
call qword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
cmp ax, bx
jne 0x10001b068
movzx r8d, bx
lea rdx, [0x100003da0]
mov ecx, 1
call fcn.1000193f0
xor eax, eax
jmp 0x10001b0bf
call qword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
movzx r9d, ax
movzx r8d, bx
lea rdx, [0x100003c80]
mov ecx, 1
call fcn.1000193f0
xor eax, eax
jmp 0x10001b0bf
movzx r8d, bx
lea rdx, [fcn.100003bf0]
mov ecx, 2
call fcn.1000193f0
xor eax, eax
jmp 0x10001b0bf
movzx r8d, bx
lea rdx, [fcn.100003b30]
mov ecx, 2
call fcn.1000193f0
xor eax, eax
jmp 0x10001b0bf
xor eax, eax
mov rbx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
add rsp, 0x58
ret