Function at 0x405b42
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ecx
push ebx
push ebp
push esi
mov esi, ecx
xor ebx, ebx
push edi
cmp word [esi + 0x6e], bx
jne 0x405b7d
mov eax, dword [esi + 0x7c]
mov ax, word [eax + 0x104]
cmp ax, bx
mov word [esi + 0x6e], ax
jne 0x405b7d
push str.invalid_langid
push str._s_failed_n
push 0x46abb8
call fcn.00414d1c
jmp 0x405d59
cmp dword [esi + 0x40], ebx
jne 0x405d60
cmp dword [esi + 0x4c], ebx
jne 0x405d60
cmp dword [esi + 0x48], ebx
jne 0x405d60
call fcn.00447f26
cmp dword [eax + 8], ebx
jne 0x405bb5
call fcn.00447f26
mov eax, dword [eax + 4]
mov edi, dword [eax + 0x68]
call fcn.00447f26
mov dword [eax + 0xc], edi
call fcn.00447f26
mov ebp, dword [eax + 0xc]
cmp ebp, ebx
jne 0x405bdd
push dword [esi + 0x60]
push str.Cound_not_find_dialog_resource_in_resource_chain_for_ID__d
push 8
push 0x46abb8
call fcn.0040121a
add esp, 0x10
jmp 0x405d5c
mov ax, word [esi + 0x6e]
mov ebx, dword [sym.imp.KERNEL32.dll_FindResourceExA]
push eax
movzx eax, word [esi + 0x60]
push eax
push 5
push ebp
call ebx
mov edi, eax
test edi, edi
jne 0x405c5b
mov ax, word [esi + 0x6c]
and eax, 0x3ff
or ah, 4
mov word [esi + 0x6e], ax
push eax
movzx eax, word [esi + 0x60]
push eax
push 5
push ebp
call ebx
mov edi, eax
test edi, edi
jne 0x405c5b
movzx eax, word [esi + 0x60]
push 0x400
push eax
push 5
push ebp
mov word [esi + 0x6e], 0x400
call ebx
mov edi, eax
test edi, edi
jne 0x405c5b
movzx eax, word [esi + 0x6e]
push eax
mov eax, dword [esi + 0x7c]
movzx eax, word [eax + 0x104]
push eax
push dword [esi + 0x60]
push str.Cound_not_find_dialog_ID__d_resource_by_LangIds__d_and__d
push 8
push 0x46abb8
call fcn.0040121a
add esp, 0x18
push edi
push ebp
call dword [sym.imp.KERNEL32.dll_LoadResource]
xor edi, edi
mov dword [esi + 0x64], eax
cmp eax, edi
jne 0x405c76
push str.Cound_not_load_dialog_template
jmp 0x405d4d
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
cmp eax, edi
mov dword [esp + 0x10], eax
jne 0x405c8f
push str.Cound_not_lock_dialog_template
jmp 0x405d4d
cmp word [eax + 2], 0xffff
jne 0x405d48
cmp dword [esi + 0x74], edi
je 0x405ca7
or dword [eax + 8], 0x402000
mov ax, word [esi + 0x6e]
and dword [esi + 0x68], 0
push eax
movzx eax, word [esi + 0x60]
push eax
push pe_nt_image_headers32
push ebp
call ebx
mov ebx, eax
test ebx, ebx
je 0x405cd7
push ebx
push ebp
call dword [sym.imp.KERNEL32.dll_LoadResource]
push eax
mov dword [esi + 0x68], eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
push ebx
push str.DLGINIT_p
mov ebp, 0x46abb8
push 0x20
push ebp
call fcn.0040121a
add esp, 0x10
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [esi + 0x70], 0
push edi
push dword [esi + 0x78]
mov ecx, esi
push dword [esp + 0x18]
je 0x405d0c
call fcn.0043fb68
jmp 0x405d11
call fcn.0043f8bf
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, word [esi + 0x6e]
push eax
push ebx
push ecx
push ecx
mov eax, ebx
push edi
push dword [esi + 0x78]
neg eax
push dword [esp + 0x28]
sbb eax, eax
and eax, 0x78
push str.Init_create_dialog_indirect_with___p___p___p__for_langid_d__0x_x_with_result__d_and_error__d_n
add eax, 8
push eax
push ebp
call fcn.0040121a
add esp, 0x28
mov eax, ebx
jmp 0x405d63
push str.Dialog_template_is_not_DIALOGEX._Please_change_it_for_RTL_language_compatibility.
push 8
push 0x46abb8
call fcn.0040121a
add esp, 0xc
xor eax, eax
jmp 0x405d63
push 1
pop eax
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret