Function at 0x140010310
Capabilities:
Identify system language via api

Disassembly:
push rsi
push rdi
push r12
sub rsp, 0x30
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rbp
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
movzx esi, ax
call qword [sym.imp.KERNEL32.dll_GetSystemDefaultUILanguage]
movzx r12d, ax
call qword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movzx edi, ax
call qword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
cmp si, di
jne 0x14001038d
cmp si, ax
jne 0x14001038d
xor ebp, ebp
mov eax, ebp
movzx edx, si
lea rdi, [0x140079d20]
mov rcx, rdi
nop
cmp dword [rcx], edx
je 0x140010382
add eax, 1
add rcx, 0x18
cmp eax, 0x26
jb 0x140010370
jmp 0x1400103bf
lea rcx, [rax + rax*2]
mov si, word [rdi + rcx*8 + 4]
jmp 0x1400103bf
xor ebp, ebp
mov eax, ebp
movzx edx, r12w
lea rdi, [0x140079d20]
mov rcx, rdi
nop
cmp dword [rcx], edx
je 0x1400103b6
add eax, 1
add rcx, 0x18
cmp eax, 0x26
jb 0x1400103a0
mov si, r12w
jmp 0x1400103bf
lea rcx, [rax + rax*2]
mov si, word [rdi + rcx*8 + 4]
movzx edx, si
mov esi, edx
and esi, 0x1ff
mov eax, ebp
mov rcx, rdi
nop
cmp dword [rcx], edx
je 0x1400104b5
add eax, 1
add rcx, 0x18
cmp eax, 0x26
jb 0x1400103d0
mov r8, qword [0x140079d30]
mov word [rbx], 0
test r8, r8
je 0x140010402
mov edx, 0x3e8
mov rcx, rbx
call fcn.140036860
mov eax, ebp
mov rcx, rdi
cmp dword [rcx], esi
je 0x140010493
add eax, 1
add rcx, 0x18
cmp eax, 0x26
jb 0x140010407
mov r8, qword [0x140079d30]
mov word [rbx], 0
test r8, r8
je 0x140010439
mov edx, 0x3e8
mov rcx, rbx
call fcn.140036860
mov eax, ebp
mov rcx, rdi
nop
cmp dword [rcx], 9
je 0x140010471
add eax, 1
add rcx, 0x18
cmp eax, 0x26
jb 0x140010440
mov r8, qword [0x140079d30]
mov word [rbx], 0
test r8, r8
je 0x1400104d5
mov edx, 0x3e8
mov rcx, rbx
call fcn.140036860
jmp 0x1400104d5
lea rcx, [rax + rax*2]
mov r8, qword [rdi + rcx*8 + 0x10]
mov word [rbx], 0
test r8, r8
je 0x1400104d5
mov edx, 0x3e8
mov rcx, rbx
call fcn.140036860
jmp 0x1400104d5
lea rcx, [rax + rax*2]
mov r8, qword [rdi + rcx*8 + 0x10]
mov word [rbx], 0
test r8, r8
je 0x1400104d5
mov edx, 0x3e8
mov rcx, rbx
call fcn.140036860
jmp 0x1400104d5
lea rcx, [rax + rax*2]
mov r8, qword [rdi + rcx*8 + 0x10]
mov word [rbx], 0
test r8, r8
je 0x1400104d5
mov edx, 0x3e8
mov rcx, rbx
call fcn.140036860
mov rsi, qword [0x1400803d0]
test rsi, rsi
jne 0x140010595
mov ecx, 0x310
call fcn.14001f560
mov rsi, rax
mov qword [rsp + 0x60], rax
test rax, rax
je 0x14001058b
call fcn.14002b6f8
mov rcx, rax
test rax, rax
setne bpl
test ebp, ebp
jne 0x14001051e
mov ecx, 0x80004005
call fcn.140002210
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsi], rax
mov word [rsi + 0x64], 0
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [0x1400660dc]
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x1400660dc]
mov rcx, rsi
call fcn.140005c50
lea rcx, [rsi + 8]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea rcx, [rsi + 0x30]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea rcx, [rsi + 0x26c]
mov word [rcx], 0
lea r8, [0x1400660e0]
mov edx, 0x50
call fcn.140036860
nop
jmp 0x14001058e
mov rsi, rbp
mov qword [0x1400803d0], rsi
mov r8, rbx
lea rdx, str.GetLangExt____s
mov rcx, rsi
call fcn.14000f840
mov eax, 1
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
add rsp, 0x30
pop r12
pop rdi
pop rsi
ret