Function at 0x41ef30
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ecx
push esi
mov esi, ecx
cmp word [esi + 0x8a], 0
jne 0x41ef73
mov eax, dword [esi + 0x98]
mov cx, word [eax + 0x128]
mov word [esi + 0x8a], cx
test cx, cx
jne 0x41ef73
push str.invalid_langid
push str._s_failed_n
push 0x519518
call fcn.00426fe1
add esp, 0xc
xor eax, eax
pop esi
pop ecx
ret
cmp dword [esi + 0x58], 0
jne 0x41f1b0
cmp dword [esi + 0x64], 0
jne 0x41f1b0
cmp dword [esi + 0x60], 0
jne 0x41f1b0
push edi
call fcn.00458744
cmp dword [eax + 8], 0
jne 0x41efb0
call fcn.00458744
mov eax, dword [eax + 4]
mov edi, dword [eax + 0x44]
call fcn.00458744
mov dword [eax + 0xc], edi
push ebx
call fcn.00458744
mov ebx, dword [eax + 0xc]
test ebx, ebx
jne 0x41efdc
mov edx, dword [esi + 0x7c]
push edx
push str.Cound_not_find_dialog_resource_in_resource_chain_for_ID__d
push 8
push 0x519518
call fcn.00402450
add esp, 0x10
pop ebx
pop edi
xor eax, eax
pop esi
pop ecx
ret
movzx eax, word [esi + 0x8a]
movzx ecx, word [esi + 0x7c]
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_FindResourceExA]
push eax
push ecx
push 5
push ebx
call ebp
mov edi, eax
test edi, edi
jne 0x41f075
movzx eax, word [esi + 0x88]
mov edx, 0x3ff
and ax, dx
movzx edx, word [esi + 0x7c]
mov ecx, 0x400
or ax, cx
mov word [esi + 0x8a], ax
push eax
push edx
push 5
push ebx
call ebp
mov edi, eax
test edi, edi
jne 0x41f075
movzx ecx, word [esi + 0x7c]
mov eax, 0x400
push eax
push ecx
push 5
push ebx
mov word [esi + 0x8a], ax
call ebp
mov edi, eax
test edi, edi
jne 0x41f075
movzx edx, word [esi + 0x8a]
mov eax, dword [esi + 0x98]
movzx ecx, word [eax + 0x128]
push edx
mov edx, dword [esi + 0x7c]
push ecx
push edx
push str.Cound_not_find_dialog_ID__d_resource_by_LangIds__d_and__d
push 8
push 0x519518
call fcn.00402450
add esp, 0x18
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [esi + 0x80], eax
test eax, eax
jne 0x41f091
push str.Cound_not_load_dialog_template
jmp 0x41f199
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41f0aa
push str.Cound_not_lock_dialog_template
jmp 0x41f199
mov ecx, 0xffff
cmp word [eax + 2], cx
jne 0x41f194
cmp dword [esi + 0x90], 0
je 0x41f0c9
or dword [eax + 8], 0x402000
movzx edx, word [esi + 0x8a]
movzx eax, word [esi + 0x7c]
push edx
push eax
push pe_nt_image_headers32
xor ebp, ebp
push ebx
mov dword [esi + 0x84], ebp
call dword [sym.imp.KERNEL32.dll_FindResourceExA]
mov edi, eax
test edi, edi
je 0x41f107
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
push eax
mov dword [esi + 0x84], eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov ebp, eax
push edi
push str.DLGINIT_p
push 0x20
push 0x519518
call fcn.00402450
add esp, 0x10
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [esi + 0x8c], 0
mov ecx, dword [esi + 0x94]
mov edx, dword [esp + 0x10]
push ebp
push ecx
push edx
mov ecx, esi
je 0x41f143
call fcn.00448505
jmp 0x41f14d
mov eax, dword [esi]
mov eax, dword [eax + 0x148]
call eax
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, word [esi + 0x8a]
mov edx, dword [esp + 0x10]
push eax
push edi
push ecx
push ecx
mov ecx, dword [esi + 0x94]
push ebp
push ecx
mov eax, edi
neg eax
sbb eax, eax
push edx
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 0x519518
call fcn.00402450
add esp, 0x28
pop ebp
pop ebx
mov eax, edi
pop edi
pop esi
pop ecx
ret
push str.Dialog_template_is_not_DIALOGEX._Please_change_it_for_RTL_language_compatibility.
push 8
push 0x519518
call fcn.00402450
add esp, 0xc
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
pop ecx
ret
mov eax, 1
pop esi
pop ecx
ret