Function at 0x14001bf90
Capabilities:
Identify system language via api

Disassembly:
mov byte [rsp + 0x10], dl
mov dword [rsp + 8], ecx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x48
movzx eax, byte [0x140042b44]
mov esi, 0x1ca
movzx r15d, byte [0x140042a88]
xor al, 0x21
mov edi, dword [0x140042b40]
and r15b, 0x69
mov ecx, dword [0x140042a64]
or r15b, al
movsx eax, byte [0x140042b67]
dec edi
mov r14d, dword [0x140042b4c]
xor ecx, 0x47
mov r9d, dword [0x140042b28]
or ecx, eax
or dword [0x140042b68], ecx
neg r14d
mov r10d, edi
mov byte [0x140042b57], r15b
shr r10d, 2
and r14d, 3
add r10d, r9d
cmp r14d, esi
je 0x14001c021
movzx eax, byte [0x140042b88]
sub al, 0x13
mov byte [0x140042b56], al
jmp 0x14001c028
movzx eax, byte [0x140042b56]
mov r12d, dword [0x140042b78]
xor ebx, ebx
cmp byte [0x140042a87], bl
mov ebp, 1
mov byte [rsp + 0xa0], al
jne 0x14001c051
mov eax, 0x2e4
cmp eax, r12d
mov eax, ebx
je 0x14001c053
mov eax, ebp
movzx r13d, byte [0x140042b54]
movzx r8d, byte [0x140042b55]
mov r11d, r13d
sub r8b, al
imul r11d, r10d
mov eax, 0x66666667
imul r11d
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
sub r11d, eax
mov eax, dword [0x140042b6c]
imul ecx, eax, 0x47
mov dword [rsp + 0x24], eax
mov eax, 0xaaaaaaab
mul ecx
mov eax, dword [0x140042b34]
mov ecx, edi
shl eax, cl
mov ecx, ebx
shr edx, 1
cmp eax, 0xffffffbf
mov dword [rsp + 0x30], edx
lea eax, [r13 + 0x1ca]
sete cl
or r8b, byte [0x140042b7c]
or ecx, eax
mov byte [0x140042b55], r8b
xor dword [0x140042b3c], ecx
mov eax, dword [0x140042b38]
inc eax
mov dword [rsp + 0x2c], eax
movzx eax, byte [0x140042b81]
mov byte [rsp + 0x98], al
test edx, edx
jne 0x14001c0fa
cmp r14d, r13d
jg 0x14001c0fa
movzx r8d, byte [0x140042b64]
jmp 0x14001c112
test al, al
jne 0x14001c105
mov eax, ebx
cmp edx, 0x47
je 0x14001c107
mov eax, ebp
movzx r8d, byte [0x140042b64]
xor r8b, al
test r11b, r11b
je 0x14001c11b
mov ecx, ebp
js 0x14001c11d
mov ecx, ebx
movzx eax, byte [rsp + 0x24]
shl al, cl
mov byte [rsp + 0x90], al
mov byte [0x140042b66], al
movzx eax, byte [0x140042b82]
imul ecx, eax, 0xffffffbf
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
movzx eax, byte [0x140042b5c]
sub al, r10b
mov dword [rsp + 0x34], ecx
movsx r10d, byte [rsp + 0x34]
mov byte [rsp + 0xa8], al
mov byte [0x140042b88], al
mov eax, 0xcccccccd
mul edi
mov eax, dword [0x140042b60]
mov ecx, edx
mov dword [rsp + 0x28], r10d
shr ecx, 2
mov dword [rsp + 0x38], ecx
lea r13d, [rax + rcx]
mov ecx, dword [0x140042b38]
movzx eax, byte [0x140042a63]
or al, bpl
mov byte [rsp + 0x20], al
mov byte [0x140042a63], al
lea r11d, [rcx + 0x5b]
movzx ecx, byte [0x140042a86]
cmp r10d, 0x16a
jae 0x14001c31d
test al, al
je 0x14001c31d
and r8b, dil
mov byte [0x140042b65], bpl
mov eax, r10d
or r8b, 0x6a
cdq
and edx, 3
add edx, eax
lea eax, [rdi - 0x41]
sar edx, 2
add edx, dword [0x140042a8c]
mov dword [rsp + 0x30], edx
test eax, eax
jne 0x14001c1fa
mov eax, ebx
test r14d, r14d
je 0x14001c1fc
mov eax, ebp
cmp dword [0x140042b84], eax
mov r9d, ebx
movzx r10d, byte [0x140042b80]
lea eax, [rdi + r14]
sete r9b
and al, cl
or r10b, al
mov dword [0x140042b28], r9d
mov ecx, edx
lea eax, [r9 - 0x41]
shr eax, cl
cmp eax, dword [rsp + 0x28]
je 0x14001c239
cmp dword [0x140042b4c], ebx
mov eax, ebx
je 0x14001c23b
mov eax, ebp
add r15b, al
not r8b
mov byte [0x140042b57], r15b
test r8b, 0x47
je 0x14001c252
test edi, edi
jne 0x14001c259
mov eax, ebx
test r15b, r15b
je 0x14001c25b
mov eax, ebp
add byte [0x140042b54], al
mov r12d, ebx
movsx eax, byte [rsp + 0x90]
cmp eax, edx
jne 0x14001c288
movzx eax, byte [0x140042a86]
lea ecx, [r14 + 0x1ca]
or ecx, eax
mov byte [0x140042b67], bl
je 0x14001c28f
mov byte [0x140042b67], bpl
mov r8d, dword [rsp + 0x2c]
mov ecx, dword [rsp + 0x28]
lea eax, [r8 + r8]
xor eax, r9d
or r12d, eax
cmp dword [0x140042a8c], 0x47
je 0x14001c2bd
cmp ecx, dword [0x140042b38]
mov eax, ebx
sete al
xor eax, r11d
mov eax, ebx
je 0x14001c2bf
mov eax, ebp
and byte [rsp + 0x98], al
mov eax, dword [0x140042b60]
add eax, 0x41
je 0x14001c2e1
movsx eax, byte [rsp + 0xa8]
shl edx, cl
cmp edx, eax
mov eax, ebp
jne 0x14001c2e3
mov eax, ebx
movzx edx, byte [rsp + 0x90]
xor dl, al
mov byte [0x140042b66], dl
cmp byte [rsp + 0xa0], bl
je 0x14001c303
mov eax, ebp
test r11d, r11d
jne 0x14001c305
mov eax, ebx
movzx ecx, byte [0x140042a86]
and r10b, al
mov byte [0x140042b80], r10b
mov r10d, dword [rsp + 0x28]
jmp 0x14001c32a
movzx edx, byte [rsp + 0x90]
mov r8d, dword [rsp + 0x2c]
cmp r8d, 0x16a
mov eax, ebx
mov r8d, dword [0x140042a88]
setne al
cmp eax, r8d
je 0x14001c3da
test cl, cl
je 0x14001c351
mov eax, ebp
test r14d, r14d
jne 0x14001c353
mov eax, ebx
add byte [0x140042a87], al
mov ecx, r11d
mov eax, r9d
shl eax, cl
shr eax, cl
lea ecx, [r13 + 0x16a]
or dword [rsp + 0x24], eax
and ecx, r9d
movzx eax, byte [rsp + 0x98]
and eax, r10d
or ecx, eax
xor dword [0x140042b34], ecx
movzx ecx, byte [0x140042b83]
test cl, cl
je 0x14001c396
mov eax, ebp
cmp r13d, edi
jne 0x14001c398
mov eax, ebx
mov esi, dword [0x140042b4c]
sub al, r12b
add byte [0x140042b65], al
movzx r10d, r15b
movzx eax, byte [rsp + 0x20]
add esi, 0x11
sar al, 0x8b
add cl, al
imul r14d, r8d
mov byte [0x140042b83], cl
mov ecx, dword [rsp + 0x38]
movzx eax, cl
shl cl, 2
add al, cl
sub r10b, al
and r14d, 3
add r10b, dil
jmp 0x14001c3dd
mov r10b, 0xbf
mov r8d, dword [0x140042b30]
cmp dword [rsp + 0x2c], ebx
jne 0x14001c3f6
mov eax, dword [0x140042a8c]
cmp dword [rsp + 0x30], eax
jle 0x14001c417
movzx eax, byte [0x140042a87]
mov r9d, esi
sub r9d, r14d
and r9d, r8d
xor r9d, eax
xor r9d, 0x16a
mov dword [0x140042b28], r9d
mov ecx, edi
mov eax, 0x16a
shr eax, cl
and eax, dword [0x140042b38]
mov ecx, dword [0x140042b5c]
xor ecx, edi
or eax, ecx
mov ecx, dword [rsp + 0x24]
add ecx, eax
mov dword [rsp + 0x24], ecx
mov dword [0x140042b6c], ecx
test esi, esi
je 0x14001c457
cmp byte [rsp + 0x34], bl
je 0x14001c457
mov r11d, edi
movsx eax, dl
and r11d, 3
add r11d, eax
cmp dword [0x140042a64], ebx
je 0x14001c46f
mov eax, r13d
mov byte [0x140042b64], bpl
sub eax, esi
test al, 0x47
jne 0x14001c475
mov byte [0x140042b64], bl
mov edx, dword [rsp + 0x28]
mov ecx, ebx
movsx eax, byte [rsp + 0xa8]
movsx r10d, r10b
add edx, r10d
xor edx, r13d
cmp eax, edx
sete cl
or r12d, ecx
cmp dword [0x140042b44], 0x47
mov dword [0x140042b78], r12d
jb 0x14001c4b1
movsx eax, byte [0x140042b67]
cmp r13d, eax
jne 0x14001c52d
mov ecx, r13d
mov eax, 0x47
shl al, cl
mov ecx, r11d
xor al, r9b
or r15b, al
mov eax, 0x16a
shr eax, cl
and eax, esi
mov byte [0x140042b57], r15b
xor eax, dword [rsp + 0x24]
add sil, r11b
add r9d, eax
xor sil, 0x47
add sil, byte [0x140042b38]
movsx eax, byte [rsp + 0xa0]
xor byte [0x140042b82], sil
imul edi, eax, 0x47
mov dword [0x140042b28], r9d
and edi, 0x80000003
jge 0x14001c511
dec edi
or edi, 0xfffffffc
inc edi
mov eax, 0x66666667
mov esi, r10d
imul r10d
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
sub esi, eax
add esi, r9d
test esi, esi
jne 0x14001c53b
cmp dword [0x140042b68], ebx
mov eax, ebx
je 0x14001c53d
mov eax, ebp
cmp r13d, eax
mov ecx, ebx
movzx eax, byte [0x140042b65]
seta cl
cmp eax, ecx
je 0x14001c56b
mov ecx, esi
lea eax, [r8 - 0x16a]
mov edx, edi
shl edx, cl
xor edx, eax
or edx, dword [0x140042b2c]
sub dword [0x140042b4c], edx
movzx edx, byte [rsp + 0x98]
mov eax, edx
or eax, esi
jne 0x14001c584
lea eax, [r8 + 0x47]
add eax, r13d
mov eax, ebx
je 0x14001c586
mov eax, ebp
add dword [0x140042a64], eax
mov ecx, r14d
shl r8b, cl
xor r8b, dl
xor r8b, r11b
mov byte [0x140042b81], r8b
call qword [sym.imp.KERNEL32.dll_GetSystemDefaultUILanguage]
movsx r8d, byte [0x140042b64]
mov r12d, dword [rsp + 0x2c]
cmp r14d, r8d
jne 0x14001c5d5
movsx edx, byte [0x140042b56]
mov eax, esi
mov ecx, dword [0x140042b2c]
add edx, r12d
add edx, edi
shr eax, cl
and edx, eax
sub dword [0x140042b58], edx
mov eax, dword [0x140042b60]
xor eax, edi
je 0x14001c5e5
mov eax, ebp
test edi, edi
jne 0x14001c5e7
mov eax, ebx
add byte [0x140042b82], al
mov eax, 0x66666667
mov ecx, dword [0x140042b7c]
mov r15d, dword [rsp + 0x30]
imul r15d
mov edi, edx
sar edi, 1
mov eax, edi
shr eax, 0x1f
add edi, eax
movzx eax, byte [0x140042b55]
sar al, 7
add edi, ecx
or byte [0x140042b80], al
lea eax, [r8 + 0x21]
xor r8b, al
mov byte [0x140042b64], r8b
test ecx, ecx
je 0x14001c643
test edi, edi
jne 0x14001c63b
mov eax, r12d
xor eax, r14d
je 0x14001c643
mov dword [0x140042a88], ebp
jmp 0x14001c649
mov dword [0x140042a88], ebx
call qword [sym.imp.KERNEL32.dll_UnregisterApplicationRecoveryCallback]
call qword [sym.imp.KERNEL32.dll_GetConsoleOutputCP]
call qword [sym.imp.KERNEL32.dll_GetACP]
cmp dword [0x140042b38], ebx
mov edx, dword [0x140042b34]
jne 0x14001c67b
cmp edx, 0x16a
mov eax, ebx
setne al
cmp eax, 0x16a
je 0x14001c6d5
cmp dword [0x140042b6c], ebx
je 0x14001c697
mov ecx, esi
mov byte [0x140042b64], bpl
shl edi, cl
mov ecx, r13d
shl edi, cl
test edi, edi
jne 0x14001c69d
mov byte [0x140042b64], bl
mov ecx, dword [0x140042a8c]
add ecx, r15d
jne 0x14001c6bb
mov eax, dword [rsp + 0x28]
add eax, r12d
je 0x14001c6b9
cmp byte [0x140042b82], bl
jne 0x14001c6bb
mov ebp, ebx
movsx eax, byte [0x140042b88]
or edx, ebp
cmp eax, esi
mov dword [0x140042b34], edx
sete bl
and dword [0x140042b60], ebx
mov edx, dword [0x140042b44]
mov ecx, 0x57
mov eax, dword [0x140042b58]
add edx, 0x121
nop dword [rax]
or eax, edx
sub rcx, 1
jne 0x14001c6f0
mov dword [0x140042b58], eax
call fcn.14001b840
xor eax, eax
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret