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

Disassembly:
sub esp, 0xc60
mov eax, dword [0x432ebc]
push edi
xor edi, edi
push edi
push 0x409e00
mov dword [esp + 0xc68], eax
call dword [sym.imp.USER32.dll_EnumWindows]
cmp dword [0x43c47c], edi
je 0x409f71
xor eax, eax
pop edi
mov ecx, dword [esp + 0xc5c]
call fcn.00416328
add esp, 0xc60
ret 0x10
push esi
mov dword [esp + 0x40], edi
call fcn.00409e60
mov esi, dword [esp + 0xc6c]
mov eax, dword [0x4327c0]
push 0x7f00
push edi
mov dword [0x43c40c], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x1c], 0x408c10
mov dword [esp + 0x18], 3
call dword [sym.imp.USER32.dll_LoadIconW]
push 0x7f00
push edi
mov dword [esp + 0x2c], eax
call dword [sym.imp.USER32.dll_LoadCursorW]
push edi
mov dword [esp + 0x2c], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
lea ecx, [esp + 0x10]
push ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], str.LOOKALF
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
call dword [sym.imp.USER32.dll_RegisterClassW]
test ax, ax
jne 0x40a009
pop esi
xor eax, eax
pop edi
mov ecx, dword [esp + 0xc5c]
call fcn.00416328
add esp, 0xc60
ret 0x10
push 0x304
call fcn.004242a4
add esp, 4
cmp eax, edi
je 0x40a023
mov ecx, eax
call fcn.00408b90
jmp 0x40a025
xor eax, eax
push ebx
push ebp
push 0x4da0
mov dword [0x43c484], eax
call fcn.004242a4
add esp, 4
cmp eax, edi
je 0x40a05b
mov edx, dword [esp + 0xc7c]
lea ecx, [edx + 1]
mov bl, byte [edx]
inc edx
test bl, bl
jne 0x40a047
sub edx, ecx
push edx
push esi
mov ecx, eax
call fcn.0040c080
jmp 0x40a05d
xor eax, eax
mov ebp, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov dword [0x43c418], eax
add eax, 0x3c
mov ebx, dword [eax]
mov edx, dword [eax + 4]
mov esi, dword [eax + 8]
mov edi, dword [eax + 0xc]
lea eax, [esp + 0x6c]
push eax
push 0x1ff
mov dword [esp + 0x68], edx
call ebp
lea ecx, [esp + 0x6c]
push str.LangRsRuReleaseLangRsRu.dll
push ecx
call fcn.00416c24
add esp, 8
lea edx, [esp + 0x46c]
push edx
push 0x1ff
call ebp
lea eax, [esp + 0x46c]
push str.ReleaseLangDLLsLangRsRu.dll
push eax
call fcn.00416c24
lea ecx, [esp + 0x74]
push ecx
call fcn.004123c0
add esp, 0xc
test eax, eax
je 0x40a0df
push 0
lea edx, [esp + 0x470]
push edx
lea eax, [esp + 0x74]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
lea ecx, [esp + 0x6c]
push ecx
push 0x1ff
call ebp
lea edx, [esp + 0x6c]
push str.LangRsEnReleaseLangRsEn.dll
push edx
call fcn.00416c24
add esp, 8
lea eax, [esp + 0x46c]
push eax
push 0x1ff
call ebp
lea ecx, [esp + 0x46c]
push str.ReleaseLangDLLsLangRsEn.dll
push ecx
call fcn.00416c24
lea edx, [esp + 0x74]
push edx
call fcn.004123c0
add esp, 0xc
test eax, eax
je 0x40a144
push 0
lea eax, [esp + 0x470]
push eax
lea ecx, [esp + 0x74]
push ecx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
mov edx, dword [0x43c484]
push 0x42b4ac
push str.Debug.txt
movzx ebp, ax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edx
call fcn.0041648d
mov ecx, dword [esp + 0x18]
push ebp
push ebp
push str._int_lang
push str._s_d__x__n
push eax
mov dword [ecx], eax
call fcn.004163d3
mov edx, dword [esp + 0x2c]
mov eax, dword [edx]
push eax
call fcn.00416382
mov al, byte [esp + 0x34]
mov ecx, dword [0x43c484]
add esp, 0x20
cmp al, 0x19
jne 0x40a1a6
push str.russian
jmp 0x40a1ab
push str.nonrussian
call fcn.00401070
mov edx, dword [0x43c40c]
push 0x1ff
lea ecx, [esp + 0x870]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [esp + 0x86c]
push 0x5c
push eax
call fcn.0041709d
add esp, 8
test eax, eax
je 0x40a1e5
mov word [eax], 0
lea ecx, [esp + 0x86c]
push str.LangDLLsLangRsEn.dll
push ecx
call fcn.00416c24
add esp, 8
push 2
push 0
lea edx, [esp + 0x874]
push edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
test eax, eax
mov ecx, dword [0x43c484]
mov dword [0x43c408], eax
jne 0x40a227
push str.DLL_load_ERROR
call fcn.00401000
jmp 0x40a231
push str.DLL_load_OK
call fcn.00401070
mov eax, dword [0x43c408]
push str.LOOKALF
push eax
call dword [sym.imp.USER32.dll_LoadMenuW]
mov ecx, dword [0x43c484]
mov ebp, eax
test ebp, ebp
jne 0x40a25a
push str.Menu_load_ERROR
call fcn.00401000
jmp 0x40a264
push str.Menu_load_OK
call fcn.00401070
mov ecx, dword [esp + 0xc74]
mov eax, dword [esp + 0x60]
push 0
push ecx
push ebp
push 0
sub edi, eax
push edi
sub esi, ebx
push esi
push eax
mov eax, dword [0x4327c0]
push ebx
push 0xcf0000
push eax
push eax
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
push 0xca
mov dword [0x43c480], eax
call fcn.004124e0
mov edx, dword [0x43c480]
add esp, 4
push eax
push edx
call dword [sym.imp.USER32.dll_SetWindowTextW]
mov eax, dword [0x43c408]
test eax, eax
jne 0x40a2d5
mov eax, dword [0x43c480]
push 0x1010
push str.Error
push str.Language_Resource_DLL_not_found_in_current_dir
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
mov ecx, dword [esp + 0xc7c]
push ecx
call fcn.004124a0
mov ecx, dword [0x43c484]
add esp, 4
mov esi, eax
push esi
call fcn.00401000
test esi, esi
je 0x40a32e
cmp word [esi], 0x22
jne 0x40a32e
add esi, 2
push 0x22
push esi
call fcn.0041709d
add esp, 8
test eax, eax
je 0x40a32e
fld qword [0x42bc90]
sub esp, 8
fstp qword [esp]
push 0xffffffffffffffff
mov word [eax], 0
mov ecx, dword [0x43c418]
push esi
call fcn.0040a6f0
mov edx, dword [0x43c480]
push edx
call dword [sym.imp.USER32.dll_GetMenu]
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
push 0
push 0
mov dword [0x43c3f0], eax
push 0
lea eax, [esp + 0x4c]
push eax
call esi
test eax, eax
je 0x40a382
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebx, dword [sym.imp.USER32.dll_DispatchMessageW]
lea ecx, [esp + 0x40]
push ecx
call edi
lea edx, [esp + 0x40]
push edx
call ebx
push 0
push 0
push 0
lea eax, [esp + 0x4c]
push eax
call esi
test eax, eax
jne 0x40a363
test ebp, ebp
je 0x40a38d
push ebp
call dword [sym.imp.USER32.dll_DestroyMenu]
mov eax, dword [0x43c408]
test eax, eax
pop ebp
pop ebx
je 0x40a39f
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [0x43c418]
test ecx, ecx
mov esi, ecx
je 0x40a3b9
call fcn.0040b800
push esi
call fcn.004242cf
add esp, 4
mov ecx, dword [0x43c484]
push ecx
call fcn.004242cf
mov ecx, dword [esp + 0xc68]
mov eax, dword [esp + 0x44]
add esp, 4
pop esi
pop edi
call fcn.00416328
add esp, 0xc60
ret 0x10