Function at 0x40bd00
Capabilities:
Copy file
Enumerate gui resources
Get common file path
Identify system language via api

Disassembly:
sub esp, 0xc58
mov eax, dword [0x437788]
push edi
xor edi, edi
push edi
push 0x40bbd0
mov dword [esp + 0xc60], eax
call dword [sym.imp.USER32.dll_EnumWindows]
cmp dword [0x43b524], edi
je 0x40bd41
xor eax, eax
pop edi
mov ecx, dword [esp + 0xc54]
call fcn.0041c756
add esp, 0xc58
ret 0x10
push ebx
mov dword [esp + 0x48], edi
call fcn.0040bc30
mov ebx, dword [esp + 0xc64]
mov eax, dword [0x438d60]
push 0x7f00
push edi
mov dword [0x43b4b4], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x34], eax
mov dword [esp + 0x14], 0x40a710
mov dword [esp + 0x10], 3
call dword [sym.imp.USER32.dll_LoadIconW]
push 0x7f00
push edi
mov dword [esp + 0x24], eax
call dword [sym.imp.USER32.dll_LoadCursorW]
push edi
mov dword [esp + 0x24], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
lea ecx, [esp + 8]
push ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], str.LOOKALF
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
call dword [sym.imp.USER32.dll_RegisterClassW]
test ax, ax
jne 0x40bdd9
pop ebx
xor eax, eax
pop edi
mov ecx, dword [esp + 0xc54]
call fcn.0041c756
add esp, 0xc58
ret 0x10
push esi
push 0x304
call fcn.004295c7
mov esi, eax
add esp, 4
cmp esi, edi
je 0x40be16
push 0x4333d4
push str.Debug.txt
call fcn.0041bc24
push str.Test_messages_n
push eax
mov dword [esi], eax
call fcn.0041bc37
mov edx, dword [esi]
push edx
call fcn.0041bd27
add esp, 0x14
jmp 0x40be18
xor esi, esi
push 0x50a0
mov dword [0x43b52c], esi
call fcn.004295c7
mov esi, eax
add esp, 4
cmp esi, edi
je 0x40be54
mov eax, dword [esp + 0xc70]
lea edx, [eax + 1]
jmp 0x40be40
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40be40
sub eax, edx
mov ecx, eax
mov eax, ebx
call fcn.0040c400
jmp 0x40be56
xor eax, eax
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov dword [0x43b4c0], eax
add eax, 0x40
mov ecx, dword [eax]
mov edx, dword [eax + 4]
push ebp
mov ebp, dword [eax + 8]
mov ebx, dword [eax + 0xc]
lea eax, [esp + 0x64]
push eax
push 0x1ff
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
call esi
lea ecx, [esp + 0x64]
push str.LangRsRuReleaseLangRsRu.dll
push ecx
call fcn.0041bc95
add esp, 8
lea edx, [esp + 0x464]
push edx
push 0x1ff
call esi
lea eax, [esp + 0x464]
push str.ReleaseLangDLLsLangRsRu.dll
push eax
call fcn.0041bc95
lea ecx, [esp + 0x6c]
push 0x432cf4
push ecx
call fcn.0041c12e
add esp, 0x10
cmp eax, edi
mov edi, dword [sym.imp.KERNEL32.dll_CopyFileW]
je 0x40beed
push eax
call fcn.0041bd27
add esp, 4
push 0
lea edx, [esp + 0x468]
push edx
lea eax, [esp + 0x6c]
push eax
call edi
lea ecx, [esp + 0x64]
push ecx
push 0x1ff
call esi
lea edx, [esp + 0x64]
push str.LangRsEnReleaseLangRsEn.dll
push edx
call fcn.0041bc95
add esp, 8
lea eax, [esp + 0x464]
push eax
push 0x1ff
call esi
lea ecx, [esp + 0x464]
push str.ReleaseLangDLLsLangRsEn.dll
push ecx
call fcn.0041bc95
lea edx, [esp + 0x6c]
push 0x432cf4
push edx
call fcn.0041c12e
add esp, 0x10
test eax, eax
je 0x40bf5c
push eax
call fcn.0041bd27
add esp, 4
push 0
lea eax, [esp + 0x468]
push eax
lea ecx, [esp + 0x6c]
push ecx
call edi
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov edi, dword [0x43b52c]
push 0x432bec
push str.Debug.txt
mov word [0x43b49c], ax
movzx esi, ax
call fcn.0041bc24
push esi
push esi
push str._int_langUI
push str._s_d__x__n
push eax
mov dword [edi], eax
call fcn.0041bc37
mov edx, dword [edi]
push edx
call fcn.0041bd27
mov al, byte [0x43b49c]
mov esi, dword [0x43b52c]
add esp, 0x20
cmp al, 0x19
push 0x432bec
push str.Debug.txt
jne 0x40bfd4
call fcn.0041bc24
push str.russian
push 0x432be8
push eax
mov dword [esi], eax
call fcn.0041bc37
mov eax, dword [esi]
push eax
jmp 0x40bfee
call fcn.0041bc24
push str.nonrussian
push 0x432be8
push eax
mov dword [esi], eax
call fcn.0041bc37
mov ecx, dword [esi]
push ecx
call fcn.0041bd27
mov eax, dword [0x43b4b4]
add esp, 0x18
push 0x1ff
lea edx, [esp + 0x868]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [esp + 0x864]
push 0x5c
push ecx
call fcn.0041be32
add esp, 8
test eax, eax
je 0x40c02a
mov word [eax], 0
cmp byte [0x43b49c], 0x19
mov eax, str.LangDLLsLangRsRu.dll
je 0x40c03d
mov eax, str.LangDLLsLangRsEn.dll
push eax
lea edx, [esp + 0x868]
push edx
call fcn.0041bc95
add esp, 8
push 2
push 0
lea eax, [esp + 0x86c]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
test eax, eax
mov esi, dword [0x43b52c]
mov dword [0x43b4b0], eax
jne 0x40c07b
mov edi, str.DLL_load_ERROR
call fcn.00401280
jmp 0x40c0a7
push 0x432bec
push str.Debug.txt
call fcn.0041bc24
push str.DLL_load_OK
push 0x432be8
push eax
mov dword [esi], eax
call fcn.0041bc37
mov ecx, dword [esi]
push ecx
call fcn.0041bd27
add esp, 0x18
mov edx, dword [0x43b4b0]
push str.LOOKALF
push edx
call dword [sym.imp.USER32.dll_LoadMenuW]
test eax, eax
mov esi, dword [0x43b52c]
mov dword [0x43b494], eax
jne 0x40c0d4
mov edi, str.Menu_load_ERROR
call fcn.00401280
jmp 0x40c100
push 0x432bec
push str.Debug.txt
call fcn.0041bc24
push str.Menu_load_OK
push 0x432be8
push eax
mov dword [esi], eax
call fcn.0041bc37
mov eax, dword [esi]
push eax
call fcn.0041bd27
add esp, 0x18
mov ecx, dword [esp + 0xc6c]
mov edx, dword [0x43b494]
mov eax, dword [esp + 0x38]
push 0
push ecx
mov ecx, dword [esp + 0x44]
push edx
push 0
sub ebx, ecx
push ebx
sub ebp, eax
push ebp
push ecx
push eax
mov eax, dword [0x438d60]
push 0xcf0000
push eax
push eax
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov ecx, 0xca
mov dword [0x43b528], eax
call fcn.004174d0
push eax
mov eax, dword [0x43b528]
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov eax, dword [0x43b4b0]
test eax, eax
jne 0x40c178
mov ecx, dword [0x43b528]
push 0x1010
push str.Error
push str.Language_Resource_DLL_not_found_in_current_dir
push ecx
call dword [sym.imp.USER32.dll_MessageBoxW]
mov esi, dword [esp + 0xc74]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40c184
sub eax, edx
inc eax
push eax
push 0x43c550
push 0xffffffffffffffff
push esi
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov esi, dword [0x43b52c]
mov edi, 0x43c550
call fcn.00401280
cmp word [0x43c550], 0x22
jne 0x40c1f1
push 0x22
push 0x43c552
call fcn.0041be32
add esp, 8
test eax, eax
je 0x40c1f1
fld qword [0x433d28]
mov esi, dword [0x43b4c0]
sub esp, 8
fstp qword [esp]
push 0xffffffffffffffff
push 0x43c552
mov word [eax], 0
call fcn.0040c650
mov edx, dword [0x43b528]
push edx
call dword [sym.imp.USER32.dll_GetMenu]
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
push 0
push 0
mov dword [0x43b490], eax
push 0
lea eax, [esp + 0x54]
push eax
call esi
test eax, eax
je 0x40c245
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebp, dword [sym.imp.USER32.dll_DispatchMessageW]
lea ecx, [esp + 0x48]
push ecx
call edi
lea edx, [esp + 0x48]
push edx
call ebp
push 0
push 0
push 0
lea eax, [esp + 0x54]
push eax
call esi
test eax, eax
jne 0x40c226
mov eax, dword [0x43b494]
test eax, eax
pop ebp
je 0x40c256
push eax
call dword [sym.imp.USER32.dll_DestroyMenu]
mov eax, dword [0x43b4c0]
test eax, eax
mov esi, eax
je 0x40c270
push eax
call fcn.0040de20
push esi
call fcn.004295f7
add esp, 4
mov eax, dword [0x43b4b0]
test eax, eax
pop esi
je 0x40c281
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [0x43b52c]
push ecx
call fcn.004295f7
mov ecx, dword [esp + 0xc60]
mov eax, dword [esp + 0x4c]
add esp, 4
pop ebx
pop edi
call fcn.0041c756
add esp, 0xc58
ret 0x10