Function at 0x410610
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ecx
push esi
mov esi, ecx
cmp word [esi + 0x8a], 0
jne 0x410653
mov eax, dword [esi + 0x98]
mov cx, word [eax + 0x10c]
test cx, cx
mov word [esi + 0x8a], cx
jne 0x410653
push str.invalid_langid
push str._s_failed_n
push 0x4866f8
call fcn.00419d26
add esp, 0xc
xor eax, eax
pop esi
pop ecx
ret
cmp dword [esi + 0x58], 0
jne 0x410886
cmp dword [esi + 0x64], 0
jne 0x410886
cmp dword [esi + 0x60], 0
jne 0x410886
push edi
call fcn.00432c90
cmp dword [eax + 8], 0
jne 0x410690
call fcn.00432c90
mov eax, dword [eax + 4]
mov edi, dword [eax + 0x44]
call fcn.00432c90
mov dword [eax + 0xc], edi
push ebx
call fcn.00432c90
mov ebx, dword [eax + 0xc]
test ebx, ebx
jne 0x4106bc
mov edx, dword [esi + 0x7c]
push edx
push str.Cound_not_find_dialog_resource_in_resource_chain_for_ID__d
push 8
push 0x4866f8
call fcn.00401000
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 0x41074e
movzx eax, word [esi + 0x88]
movzx edx, word [esi + 0x7c]
and ax, 0x3ff
or ax, 0x400
mov word [esi + 0x8a], ax
push eax
push edx
push 5
push ebx
call ebp
mov edi, eax
test edi, edi
jne 0x41074e
movzx eax, word [esi + 0x7c]
push 0x400
push eax
push 5
push ebx
mov word [esi + 0x8a], 0x400
call ebp
mov edi, eax
test edi, edi
jne 0x41074e
movzx ecx, word [esi + 0x8a]
mov edx, dword [esi + 0x98]
movzx eax, word [edx + 0x10c]
push ecx
mov ecx, dword [esi + 0x7c]
push eax
push ecx
push str.Cound_not_find_dialog_ID__d_resource_by_LangIds__d_and__d
push 8
push 0x4866f8
call fcn.00401000
add esp, 0x18
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
mov dword [esi + 0x80], eax
jne 0x41076a
push str.Cound_not_load_dialog_template
jmp 0x41086f
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
test eax, eax
mov dword [esp + 0x10], eax
jne 0x410783
push str.Cound_not_lock_dialog_template
jmp 0x41086f
cmp word [eax + 2], 0xffff
jne 0x41086a
cmp dword [esi + 0x90], 0
je 0x41079f
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 0x4107dd
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 0x4866f8
call fcn.00401000
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 0x410819
call fcn.0042b4d0
jmp 0x410823
mov eax, dword [esi]
mov eax, dword [eax + 0x140]
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 0x4866f8
call fcn.00401000
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 0x4866f8
call fcn.00401000
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