Function at 0x40a364
Capabilities:
Extract resource via kernel32 functions
Get common file path
Get graphical window text
Identify system language via api

Disassembly:
push ebp
sub esp, 0x344
lea ebp, [esp - 4]
mov eax, dword [0x47b570]
xor eax, ebp
mov dword [ebp + 0x344], eax
push 0x10
mov eax, 0x45dbac
call fcn.00443770
mov eax, dword [ebp + 0x350]
mov ecx, 0x47d890
mov dword [ebp - 0x1c], eax
call fcn.0042534a
test al, al
jne 0x40a3a7
or eax, 0xffffffff
jmp 0x40a625
mov edi, 0x103
xor ebx, ebx
push edi
lea eax, [ebp + 0x241]
push ebx
push eax
mov byte [ebp + 0x240], bl
call fcn.00443310
add esp, 0xc
lea esi, [edi + 1]
push esi
lea eax, [ebp + 0x240]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea eax, [ebp + 0x240]
push eax
lea ecx, [ebp + 0x1c]
call fcn.00403364
mov dword [ebp - 4], ebx
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
movzx ecx, ax
mov eax, 0x412
cmp ecx, eax
jg 0x40a450
je 0x40a449
sub ecx, 0x401
je 0x40a442
sub ecx, 3
je 0x40a43b
sub ecx, 3
je 0x40a434
dec ecx
dec ecx
je 0x40a42d
sub ecx, 3
je 0x40a426
sub ecx, 5
jne 0x40a475
push str.ja_JP
jmp 0x40a4ab
push str._fr_FR
jmp 0x40a4ab
push str.en_US
jmp 0x40a4ab
push str.de_DE
jmp 0x40a4ab
push str.zh_TW
jmp 0x40a4ab
push str._sr_SA
jmp 0x40a4ab
push str.ko_KR
jmp 0x40a4ab
sub ecx, 0x419
je 0x40a4a6
sub ecx, 8
je 0x40a49f
sub ecx, 0xe6
je 0x40a498
sub ecx, 0x2fd
je 0x40a491
sub ecx, 0x400
je 0x40a48a
push 0xfffffffffffffffd
pop esi
push ebx
push 1
lea ecx, [ebp + 0x1c]
call fcn.004014f6
mov eax, esi
jmp 0x40a625
push str.zh_HK
jmp 0x40a4ab
push str.zh_CN
jmp 0x40a4ab
push str.kk_KZ
jmp 0x40a4ab
push str.id_ID
jmp 0x40a4ab
push str._ru_RU
lea ecx, [ebp + 0x1c]
call fcn.00403347
push str._shell32.dll.mui
lea ecx, [ebp + 0x1c]
call fcn.00403347
cmp dword [ebp + 0x34], 0x10
mov eax, dword [ebp + 0x20]
jae 0x40a4cc
lea eax, [ebp + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [ebp - 0x10], eax
cmp eax, ebx
jne 0x40a4de
push 0xfffffffffffffffc
jmp 0x40a477
push 5
push 0x461
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceA]
cmp eax, ebx
jne 0x40a500
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push 0xfffffffffffffffb
jmp 0x40a477
push eax
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_LoadResource]
cmp eax, ebx
jne 0x40a51e
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push 0xfffffffffffffffa
jmp 0x40a477
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
push ebx
push ebx
push ebx
push eax
push dword [ebp - 0x10]
call dword [sym.imp.USER32.dll_CreateDialogIndirectParamA]
push edi
mov dword [ebp - 0x14], eax
lea eax, [ebp + 0x39]
push ebx
push eax
mov byte [ebp + 0x38], bl
call fcn.00443310
add esp, 0xc
push esi
lea eax, [ebp + 0x38]
push eax
push dword [ebp - 0x14]
call dword [sym.imp.USER32.dll_GetWindowTextA]
push dword [ebp - 0x14]
mov dword [ebp - 0x18], eax
call dword [sym.imp.USER32.dll_DestroyWindow]
mov eax, dword [ebp - 0x18]
cmp eax, ebx
je 0x40a60e
cmp eax, dword [ebp + 0x354]
jg 0x40a60e
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea eax, [ebp + 0x38]
push eax
lea ecx, [ebp]
call fcn.00403364
push edi
lea eax, [ebp + 0x13d]
push ebx
push eax
mov byte [ebp + 0x13c], bl
call fcn.00443310
mov eax, dword [ebp + 0x14]
add esp, 0xc
inc eax
cmp eax, esi
jbe 0x40a5bd
push ebx
push 1
lea ecx, [ebp]
call fcn.004014f6
push 0xfffffffffffffff9
jmp 0x40a477
cmp dword [ebp + 0x18], 0x10
mov eax, dword [ebp + 4]
jae 0x40a5c9
lea eax, [ebp + 4]
push eax
push 0x463f84
lea eax, [ebp + 0x13c]
push esi
push eax
call fcn.004432b6
lea eax, [ebp + 0x13c]
push eax
push dword [ebp + 0x354]
push dword [ebp - 0x1c]
call fcn.004470cd
add esp, 0x1c
push ebx
push 1
lea ecx, [ebp]
call fcn.004014f6
push ebx
push 1
lea ecx, [ebp + 0x1c]
call fcn.004014f6
xor eax, eax
jmp 0x40a625
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push ebx
push 1
lea ecx, [ebp + 0x1c]
call fcn.004014f6
push 0xfffffffffffffff9
pop eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x344]
xor ecx, ebp
call fcn.004432f5
add ebp, 0x348
leave
ret