Function at 0x180021990
Capabilities:
Identify system language via api

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x210]
sub rsp, 0x310
mov rax, qword [0x180070310]
xor rax, rsp
mov qword [rbp + 0x200], rax
mov r13d, r8d
mov dword [rsp + 0x60], r8d
mov qword [rbp - 0x78], rdx
mov qword [rsp + 0x58], rcx
xor r9d, r9d
mov qword [rbp - 0x60], r9
mov qword [rbp - 0x58], 7
mov word [rbp - 0x70], r9w
lea r12d, [r8 + 0x1fa]
mov dword [rsp + 0x64], r12d
cmp r8d, r12d
jae 0x180021f99
movabs rdi, 0xcf1bbcdcbfa56300
lea ebx, [r9 + 0x61]
lea esi, [rbx + 3]
lea r10d, [r9 + 0x2e]
lea r11d, [r9 + 0x74]
movabs r8, 0x7ffffffffffffffe
cmp r13d, 0xe1
ja 0x180021f33
je 0x180022291
mov eax, r13d
sub eax, 1
je 0x180021f15
sub eax, 5
je 0x1800222ba
sub eax, 0x29
je 0x180021f99
sub eax, 0x56
je 0x180021d9d
cmp eax, 0x2e
jne 0x180022291
mov rbx, r9
mov qword [rbp - 0x50], rbx
cmp qword [0x180070238], 0
jbe 0x180021c8f
nop dword [rax]
mov r13d, 0x4e
mov eax, r13d
sub eax, 0x4b
je 0x180021afc
sub eax, 1
je 0x180021ac1
sub eax, 1
je 0x180021ab3
cmp eax, 1
jne 0x180021c4d
mov byte [rsp + 0x50], al
mov qword [rbp - 0x80], r9
mov qword [rsp + 0x78], r9
jmp 0x180021c4d
call qword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
xor r9d, r9d
jmp 0x180021c4d
mov dword [rsp + 0x28], 0x104
lea rax, [rbp - 0x10]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x78]
lea r8, [rsp + 0x70]
xor edx, edx
mov rcx, qword [rbp - 0x80]
call sub.SHELL32.dll_SHGetUnreadMailCountW
xor r9d, r9d
test eax, eax
je 0x180021c4d
mov byte [rsp + 0x50], r9b
jmp 0x180021c4d
cmp byte [rsp + 0x50], 0
je 0x180021b1d
lea r8, [rbp - 0x10]
xor edx, edx
xor ecx, ecx
call sub.SHELL32.dll_SHSetUnreadMailCountW
movabs r8, 0x7ffffffffffffffe
xor r9d, r9d
lea rax, [0x180070228]
cmp qword [0x180070240], 0x10
cmovae rax, qword [0x180070228]
movsx r12d, byte [rax + rbx]
mov rdi, qword [rbp - 0x60]
mov rcx, qword [rbp - 0x58]
cmp rdi, rcx
jae 0x180021b6b
lea rax, [rdi + 1]
mov qword [rbp - 0x60], rax
lea rax, [rbp - 0x70]
cmp rcx, 8
cmovae rax, qword [rbp - 0x70]
mov word [rax + rdi*2], r12w
mov word [rax + rdi*2 + 2], r9w
jmp 0x180021c4d
mov rax, r8
sub rax, rdi
cmp rax, 1
jb 0x18002230d
lea r15, [rdi + 1]
mov r14, qword [rbp - 0x58]
mov rbx, r15
or rbx, 7
cmp rbx, r8
jbe 0x180021b94
mov rbx, r8
jmp 0x180021bb5
mov rcx, r14
shr rcx, 1
mov rax, r8
sub rax, rcx
cmp r14, rax
jbe 0x180021baa
mov rbx, r8
jmp 0x180021bb5
lea rax, [r14 + rcx]
cmp rbx, rax
cmovb rbx, rax
lea rdx, [rbx + 1]
lea rcx, [rbp - 0x70]
call fcn.180061760
mov rsi, rax
mov qword [rbp - 0x60], r15
mov qword [rbp - 0x58], rbx
add rdi, rdi
mov r8, rdi
mov rcx, rax
cmp r14, 8
jb 0x180021c2e
mov rbx, qword [rbp - 0x70]
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov word [rdi + rsi], r12w
xor eax, eax
mov word [rdi + rsi + 2], ax
lea rdx, [r14*2 + 2]
cmp rdx, 0x1000
jb 0x180021c21
add rdx, 0x27
mov rcx, qword [rbx - 8]
sub rbx, rcx
lea rax, [rbx - 8]
cmp rax, 0x1f
ja 0x1800222ac
mov rbx, rcx
mov rcx, rbx
call fcn.1800639bc
xor r9d, r9d
jmp 0x180021c45
lea rdx, [rbp - 0x70]
call sub.VCRUNTIME140.dll_memcpy
mov word [rdi + rsi], r12w
xor r9d, r9d
mov word [rdi + rsi + 2], r9w
mov rbx, qword [rbp - 0x50]
mov qword [rbp - 0x70], rsi
dec r13d
cmp r13d, 0x4a
movabs r8, 0x7ffffffffffffffe
ja 0x180021a86
inc rbx
mov qword [rbp - 0x50], rbx
cmp rbx, qword [0x180070238]
jb 0x180021a80
mov r13d, dword [rsp + 0x60]
mov r12d, dword [rsp + 0x64]
mov esi, 0x64
lea r10d, [rsi - 0x36]
lea r11d, [rsi + 0x10]
mov rdi, qword [rbp - 0x60]
mov rcx, qword [rbp - 0x58]
cmp rdi, rcx
jae 0x180021cbd
lea rax, [rdi + 1]
mov qword [rbp - 0x60], rax
lea rax, [rbp - 0x70]
cmp rcx, 8
cmovae rax, qword [rbp - 0x70]
mov dword [rax + rdi*2], 0x2e
jmp 0x18002227d
mov rax, r8
sub rax, rdi
cmp rax, 1
jb 0x180022307
lea r15, [rdi + 1]
mov rsi, qword [rbp - 0x58]
mov rbx, r15
or rbx, 7
cmp rbx, r8
jbe 0x180021ce6
mov rbx, r8
jmp 0x180021d07
mov rcx, rsi
shr rcx, 1
mov rax, r8
sub rax, rcx
cmp rsi, rax
jbe 0x180021cfc
mov rbx, r8
jmp 0x180021d07
lea rax, [rsi + rcx]
cmp rbx, rax
cmovb rbx, rax
lea rdx, [rbx + 1]
lea rcx, [rbp - 0x70]
call fcn.180061760
mov r14, rax
mov qword [rbp - 0x60], r15
mov qword [rbp - 0x58], rbx
add rdi, rdi
mov r8, rdi
mov rcx, rax
cmp rsi, 8
jb 0x180021d81
mov rbx, qword [rbp - 0x70]
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov dword [rdi + r14], 0x2e
lea rdx, [rsi*2 + 2]
cmp rdx, 0x1000
jb 0x180021d6f
add rdx, 0x27
mov rcx, qword [rbx - 8]
sub rbx, rcx
lea rax, [rbx - 8]
cmp rax, 0x1f
ja 0x1800222c6
mov rbx, rcx
mov rcx, rbx
call fcn.1800639bc
mov esi, 0x64
jmp 0x18002226a
lea rdx, [rbp - 0x70]
call sub.VCRUNTIME140.dll_memcpy
mov r10d, 0x2e
mov dword [rdi + r14], r10d
lea esi, [r10 + 0x36]
jmp 0x180022270
mov rdi, qword [0x180070218]
lea rbx, [0x180070208]
cmp qword [0x180070220], 8
cmovae rbx, qword [0x180070208]
cmp rdi, 8
jae 0x180021dd3
movups xmm0, xmmword [rbx]
movups xmmword [rbp - 0x50], xmm0
mov esi, 7
mov r14, qword [rbp - 0x50]
jmp 0x180021e12
mov rsi, rdi
or rsi, 7
cmp rsi, r8
cmova rsi, r8
lea rdx, [rsi + 1]
lea rcx, [rbp - 0x50]
call fcn.180061760
mov r14, rax
mov qword [rbp - 0x50], rax
lea r8, [rdi*2 + 2]
mov rdx, rbx
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
movabs r8, 0x7ffffffffffffffe
mov qword [rbp - 0x38], rsi
mov qword [rbp - 0x40], rdi
lea r15, [rbp - 0x50]
cmp rsi, 8
cmovae r15, r14
cmp rdi, 8
jae 0x180021e3a
movups xmm0, xmmword [r15]
mov qword [rbp - 0x18], 7
jmp 0x180021e74
mov rbx, rdi
or rbx, 7
cmp rbx, r8
cmova rbx, r8
lea rdx, [rbx + 1]
lea rcx, [rbp - 0x30]
call fcn.180061760
mov qword [rbp - 0x30], rax
lea r8, [rdi*2 + 2]
mov rdx, r15
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov qword [rbp - 0x18], rbx
movups xmm0, xmmword [rbp - 0x30]
movups xmmword [rbp - 0x50], xmm0
mov qword [rbp - 0x20], rdi
mov rcx, qword [rbp - 0x58]
cmp rcx, 8
jb 0x180021ebc
lea rdx, [rcx*2 + 2]
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180021eb7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800222b3
call fcn.1800639bc
movups xmm0, xmmword [rbp - 0x50]
movups xmmword [rbp - 0x70], xmm0
movups xmm0, xmmword [rbp - 0x20]
movups xmmword [rbp - 0x60], xmm0
cmp rsi, 8
jb 0x180021f07
lea rdx, [rsi*2 + 2]
mov rax, r14
cmp rdx, 0x1000
jb 0x180021eff
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800222c6
mov rcx, r14
call fcn.1800639bc
mov esi, 0x64
lea r10d, [rsi - 0x36]
jmp 0x180022274
mov eax, 0x40
sub eax, dword [rdx]
mov rdx, qword [rcx]
imul rdx, rdi
movzx ecx, al
shr rdx, cl
mov qword [rsp + 0x68], rdx
jmp 0x18002228c
mov eax, r13d
sub eax, 0x10f
je 0x1800221a0
sub eax, 0x2e
je 0x1800220bf
sub eax, 0x2e
je 0x180021fe3
sub eax, 0x2e
je 0x180022291
cmp eax, 0x2e
jne 0x180022291
lea rax, [rbp - 0x70]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x28], r9
mov qword [rsp + 0x20], r9
mov r9d, 0x11
xor r8d, r8d
mov rdx, rcx
xor ecx, ecx
call fcn.18002f820
mov byte [rsp + 0x68], al
mov rcx, qword [rbp - 0x58]
cmp rcx, 8
jb 0x1800222d2
lea rdx, [rcx*2 + 2]
mov rcx, qword [rbp - 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800222cd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1800222cd
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
mov rdi, qword [rbp - 0x60]
mov rcx, qword [rbp - 0x58]
cmp rdi, rcx
jae 0x180022011
lea rax, [rdi + 1]
mov qword [rbp - 0x60], rax
lea rax, [rbp - 0x70]
cmp rcx, 8
cmovae rax, qword [rbp - 0x70]
mov dword [rax + rdi*2], 0x74
jmp 0x180022282
mov rax, r8
sub rax, rdi
cmp rax, 1
jb 0x180022307
lea r15, [rdi + 1]
mov rsi, qword [rbp - 0x58]
mov rbx, r15
or rbx, 7
cmp rbx, r8
jbe 0x18002203a
mov rbx, r8
jmp 0x18002205b
mov rcx, rsi
shr rcx, 1
mov rax, r8
sub rax, rcx
cmp rsi, rax
jbe 0x180022050
mov rbx, r8
jmp 0x18002205b
lea rax, [rcx + rsi]
cmp rbx, rax
cmovb rbx, rax
lea rdx, [rbx + 1]
lea rcx, [rbp - 0x70]
call fcn.180061760
mov r14, rax
mov qword [rbp - 0x60], r15
mov qword [rbp - 0x58], rbx
add rdi, rdi
mov r8, rdi
mov rcx, rax
cmp rsi, 8
jb 0x18002209b
mov rbx, qword [rbp - 0x70]
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov dword [r14 + rdi], 0x74
jmp 0x180021d42
lea rdx, [rbp - 0x70]
call sub.VCRUNTIME140.dll_memcpy
mov r11d, 0x74
mov dword [r14 + rdi], r11d
mov qword [rbp - 0x70], r14
lea esi, [r11 - 0x10]
lea r10d, [r11 - 0x46]
jmp 0x18002227a
mov rdi, qword [rbp - 0x60]
mov rcx, qword [rbp - 0x58]
cmp rdi, rcx
jae 0x1800220ed
lea rax, [rdi + 1]
mov qword [rbp - 0x60], rax
lea rax, [rbp - 0x70]
cmp rcx, 8
cmovae rax, qword [rbp - 0x70]
mov dword [rax + rdi*2], 0x61
jmp 0x180022282
mov rax, r8
sub rax, rdi
cmp rax, 1
jb 0x180022307
lea r15, [rdi + 1]
mov rsi, qword [rbp - 0x58]
mov rbx, r15
or rbx, 7
cmp rbx, r8
jbe 0x180022116
mov rbx, r8
jmp 0x180022137
mov rcx, rsi
shr rcx, 1
mov rax, r8
sub rax, rcx
cmp rsi, rax
jbe 0x18002212c
mov rbx, r8
jmp 0x180022137
lea rax, [rsi + rcx]
cmp rbx, rax
cmovb rbx, rax
lea rdx, [rbx + 1]
lea rcx, [rbp - 0x70]
call fcn.180061760
mov r14, rax
mov qword [rbp - 0x60], r15
mov qword [rbp - 0x58], rbx
add rdi, rdi
mov r8, rdi
mov rcx, rax
cmp rsi, 8
jb 0x180022177
mov rbx, qword [rbp - 0x70]
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov dword [r14 + rdi], 0x61
jmp 0x180021d42
lea rdx, [rbp - 0x70]
call sub.VCRUNTIME140.dll_memcpy
mov ebx, 0x61
mov dword [r14 + rdi], ebx
xor r9d, r9d
mov qword [rbp - 0x70], r14
lea esi, [rbx + 3]
lea r10d, [rbx - 0x33]
lea r11d, [rbx + 0x13]
jmp 0x180022282
mov rdi, qword [rbp - 0x60]
mov rcx, qword [rbp - 0x58]
cmp rdi, rcx
jae 0x1800221ce
lea rax, [rdi + 1]
mov qword [rbp - 0x60], rax
lea rax, [rbp - 0x70]
cmp rcx, 8
cmovae rax, qword [rbp - 0x70]
mov dword [rax + rdi*2], 0x64
jmp 0x180022282
mov rax, r8
sub rax, rdi
cmp rax, 1
jb 0x180022307
lea r15, [rdi + 1]
mov rsi, qword [rbp - 0x58]
mov rbx, r15
or rbx, 7
cmp rbx, r8
jbe 0x1800221f7
mov rbx, r8
jmp 0x180022218
mov rcx, rsi
shr rcx, 1
mov rax, r8
sub rax, rcx
cmp rsi, rax
jbe 0x18002220d
mov rbx, r8
jmp 0x180022218
lea rax, [rsi + rcx]
cmp rbx, rax
cmovb rbx, rax
lea rdx, [rbx + 1]
lea rcx, [rbp - 0x70]
call fcn.180061760
mov r14, rax
mov qword [rbp - 0x60], r15
mov qword [rbp - 0x58], rbx
add rdi, rdi
mov r8, rdi
mov rcx, rax
cmp rsi, 8
jb 0x180022258
mov rbx, qword [rbp - 0x70]
mov rdx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov dword [r14 + rdi], 0x64
jmp 0x180021d42
lea rdx, [rbp - 0x70]
call sub.VCRUNTIME140.dll_memcpy
mov esi, 0x64
mov dword [r14 + rdi], esi
mov r10d, 0x2e
mov qword [rbp - 0x70], r14
mov r11d, 0x74
xor r9d, r9d
mov ebx, 0x61
movabs rdi, 0xcf1bbcdcbfa56300
mov rcx, qword [rsp + 0x58]
add r13d, 0x2e
mov dword [rsp + 0x60], r13d
cmp r13d, r12d
jae 0x180021f99
mov rdx, qword [rbp - 0x78]
jmp 0x180021a1b
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
movzx eax, byte [0x180070451]
jmp 0x180021f95
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call fcn.1800639bc
mov rax, qword [rsp + 0x68]
mov rcx, qword [rbp + 0x200]
xor rcx, rsp
call fcn.1800643d0
lea r11, [rsp + 0x310]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.180061680
nop
call fcn.180061680
int3