Function at 0x408778
Capabilities:
Identify system language via api
Terminate process

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x50
mov rbx, rcx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [0x005b3b50], rax
call fcn.00403cac
mov rcx, qword [0x005b3b50]
call fcn.00408228
lea r11, [0x0040f020]
lea rcx, [0x00597ef0]
mov r8, rbx
xor edx, edx
mov qword [0x00597fb8], r11
mov qword [0x0040f4d0], rcx
mov dword [0x00597ef0], 0xf8
mov dword [0x00597fa0], 0x301
call fcn.004047b4
xor r14d, r14d
mov edi, 0x10
cmp eax, r14d
jl 0x408811
lea rdx, [0x0040c680]
lea rcx, [0x0040f4c0]
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov dword [0x00597fe0], 1
call fcn.00407170
cmp eax, r14d
je 0x4089c6
call qword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov dword [0x0040f224], 1
mov bx, ax
and ebx, 0x3ff
call qword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov ecx, dword [0x0040f224]
mov r9d, 7
shr ax, 0xa
cmp ebx, r9d
lea edx, [r9 - 5]
lea r8d, [r9 - 3]
cmove ecx, r14d
cmp ebx, edi
cmove ecx, edx
cmp ebx, r8d
lea edx, [r9 - 2]
jne 0x40887e
cmp ax, 1
lea ecx, [rdx - 2]
mov dword [0x0040f224], ecx
je 0x408993
cmp ebx, 0xa
mov r12d, 0x1d
cmove ecx, r8d
cmp ebx, r12d
lea r8d, [r12 - 0xa]
cmove ecx, edx
lea edx, [r12 - 0x17]
lea r10d, [r12 - 0xc]
cmp ebx, r10d
lea esi, [rdx + 5]
lea eax, [rdx + 3]
cmove ecx, edx
cmp ebx, 0x2a
lea ebp, [rdx + 8]
cmove ecx, r9d
cmp ebx, edx
lea r9d, [r12 - 4]
cmove ecx, eax
cmp ebx, 0x3c
lea eax, [rdx + 9]
cmove ecx, esi
cmp ebx, 0x16
lea edx, [rsi + 7]
lea r13d, [r12 - 0x11]
lea r11d, [r12 - 0x10]
cmove ecx, r13d
cmp ebx, r8d
cmove ecx, r11d
cmp ebx, 0x14
cmove ecx, ebp
cmp ebx, edx
cmove ecx, eax
cmp ebx, r9d
lea eax, [rsi + 0xa]
cmove ecx, edi
lea edi, [rsi + 0x13]
cmp ebx, edi
cmove ecx, r10d
cmp ebx, 1
cmove ecx, edx
cmp ebx, eax
lea edx, [rsi + 0x16]
cmove ecx, r8d
cmp ebx, 8
lea r8d, [r12 + 2]
cmove ecx, eax
cmp ebx, 0x36
lea eax, [rsi + 0xc]
cmove ecx, eax
cmp ebx, 0x39
lea eax, [rsi + 0xd]
cmove ecx, eax
cmp ebx, r11d
lea eax, [rsi + 0x10]
cmove ecx, r9d
cmp ebx, esi
lea r9d, [r12 - 3]
cmove ecx, r9d
cmp ebx, 5
cmove ecx, eax
cmp ebx, r8d
lea eax, [rsi + 0x11]
cmove ecx, eax
cmp ebx, 0x29
lea eax, [rsi + 0x15]
cmove ecx, r12d
cmp ebx, 0x3e
cmove ecx, edi
cmp ebx, edx
cmove ecx, r8d
cmp ebx, 0x64
cmove ecx, eax
cmp ebx, 0x52
lea eax, [rsi + 0x17]
cmove ecx, edx
cmp ebx, ebp
cmove ecx, eax
lea eax, [rsi + 0x18]
cmp ebx, r13d
cmove ecx, eax
lea eax, [rsi + 0x19]
cmp ebx, r9d
cmove ecx, eax
mov dword [0x0040f224], ecx
call fcn.004034b0
mov edx, dword [0x0040f224]
lea rcx, [0x0040c9d0]
call fcn.004034d0
mov rcx, qword [0x005b3b50]
mov edx, 5
mov dword [0x0040f224], eax
call fcn.00403e14
cmp eax, r14d
jne 0x408a04
xor eax, eax
add rsp, 0x50
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rcx, qword [rsp + 0x20]
lea r8, [rsp + 0x20]
xor edx, edx
call qword [sym.imp.USER32.dll_TranslateAcceleratorW]
cmp eax, r14d
jne 0x408a04
lea rcx, [rsp + 0x20]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rsp + 0x20]
call qword [sym.imp.USER32.dll_DispatchMessageW]
lea rcx, [rsp + 0x20]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call qword [sym.imp.USER32.dll_GetMessageW]
cmp eax, r14d
jne 0x4089d7
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_ExitProcess]