Function at 0x408a81
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ecx
push esi
mov esi, ecx
cmp word [esi + 0x8a], 0
jne 0x408ac3
mov eax, dword [esi + 0x98]
mov cx, word [eax + 0x10c]
test cx, cx
mov word [esi + 0x8a], cx
jne 0x408ac3
push str.invalid_langid
push str._s_failed_n
push 0x4932a8
call fcn.0041fb18
add esp, 0xc
xor eax, eax
pop esi
pop ecx
ret
cmp dword [esi + 0x58], 0
jne 0x408cf6
cmp dword [esi + 0x64], 0
jne 0x408cf6
cmp dword [esi + 0x60], 0
jne 0x408cf6
push edi
call fcn.0043a2e9
cmp dword [eax + 8], 0
jne 0x408b00
call fcn.0043a2e9
mov eax, dword [eax + 4]
mov edi, dword [eax + 0x44]
call fcn.0043a2e9
mov dword [eax + 0xc], edi
push ebx
call fcn.0043a2e9
mov ebx, dword [eax + 0xc]
test ebx, ebx
jne 0x408b2c
mov edx, dword [esi + 0x7c]
push edx
push str.Cound_not_find_dialog_resource_in_resource_chain_for_ID__d
push 8
push 0x4932a8
call fcn.00401300
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 0x408bbe
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 0x408bbe
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 0x408bbe
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 0x4932a8
call fcn.00401300
add esp, 0x18
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
mov dword [esi + 0x80], eax
jne 0x408bda
push str.Cound_not_load_dialog_template
jmp 0x408cdf
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
test eax, eax
mov dword [esp + 0x10], eax
jne 0x408bf3
push str.Cound_not_lock_dialog_template
jmp 0x408cdf
cmp word [eax + 2], 0xffff
jne 0x408cda
cmp dword [esi + 0x90], 0
je 0x408c0f
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 0x408c4d
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 0x4932a8
call fcn.00401300
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 0x408c89
call fcn.00447471
jmp 0x408c93
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 0x4932a8
call fcn.00401300
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 0x4932a8
call fcn.00401300
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