Function at 0x4010b0
Capabilities:
Access peb ldr_data
Extract resource via kernel32 functions

Disassembly:
push 0xffffffffffffffff
push 0x401f58
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x2c
push esi
push edi
lea ecx, [esp + 8]
call sub.MFC42.DLL_CString::CString
xor edi, edi
mov dword [esp + 0x3c], edi
call sub.MFC42.DLL_AfxGetModuleState
mov eax, dword [eax + 8]
push 0x4040b8
push 0xc8
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov esi, eax
cmp esi, edi
jne 0x401143
mov eax, dword [esp + 0x44]
lea edx, [esp + 8]
mov ecx, dword [eax]
push ecx
push str.Cant_Find__s_resource__t_r_nThis_program_file_has_been_damaged__t
push edx
call sub.MFC42.DLL_CString::Format
mov eax, dword [esp + 0x14]
add esp, 0xc
push edi
push edi
push eax
call sub.MFC42.DLL_AfxMessageBox
lea ecx, [esp + 8]
mov dword [esp + 0x3c], 0xffffffff
call fcn.00401c5c
pop edi
xor eax, eax
pop esi
mov ecx, dword [esp + 0x2c]
mov dword fs:[0], ecx
add esp, 0x38
ret 4
call sub.MFC42.DLL_AfxGetModuleState
mov eax, dword [eax + 8]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_SizeofResource]
cmp eax, edi
mov dword [esp + 0xc], eax
jne 0x4011a6
mov ecx, dword [esp + 0x44]
lea eax, [esp + 8]
mov edx, dword [ecx]
push edx
push str.Invalid__s_resource__t_r_nThis_program_file_has_been_damaged__t
push eax
call sub.MFC42.DLL_CString::Format
mov ecx, dword [esp + 0x14]
add esp, 0xc
push edi
push edi
push ecx
call sub.MFC42.DLL_AfxMessageBox
lea ecx, [esp + 8]
mov dword [esp + 0x3c], 0xffffffff
call fcn.00401c5c
pop edi
xor eax, eax
pop esi
mov ecx, dword [esp + 0x2c]
mov dword fs:[0], ecx
add esp, 0x38
ret 4
call sub.MFC42.DLL_AfxGetModuleState
mov eax, dword [eax + 8]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
lea ecx, [esp + 0x20]
mov esi, eax
call sub.MFC42.DLL_CException::CException
lea ecx, [esp + 0x30]
mov byte [esp + 0x3c], 1
call sub.MFC42.DLL_CString::CString
push edi
lea ecx, [esp + 0x34]
mov byte [esp + 0x40], 2
mov dword [esp + 0x24], 0x4032b0
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], 0xffffffff
call fcn.00401c50
lea ecx, [esp + 0x10]
mov byte [esp + 0x3c], 3
call sub.MFC42.DLL_CFile::CFile
mov edi, dword [esp + 0x44]
lea edx, [esp + 0x20]
push edx
push 0x1011
mov eax, dword [edi]
lea ecx, [esp + 0x18]
push eax
mov byte [esp + 0x48], 4
call sub.MFC42.DLL_CFile::Open
test eax, eax
jne 0x40129f
mov eax, dword [edi]
lea ecx, [esp + 8]
push eax
push str.File__s_create_failure__t
push ecx
call sub.MFC42.DLL_CString::Format
mov edx, dword [esp + 0x14]
add esp, 0xc
push 0
push 0
push edx
call sub.MFC42.DLL_AfxMessageBox
lea ecx, [esp + 0x10]
mov byte [esp + 0x3c], 3
call fcn.00401c3e
mov dword [esp + 0x20], 0x4032b0
lea ecx, [esp + 0x30]
mov byte [esp + 0x3c], 5
call fcn.00401c5c
lea ecx, [esp + 8]
mov dword [esp + 0x20], 0x40329c
mov dword [esp + 0x3c], 0xffffffff
call fcn.00401c5c
pop edi
xor eax, eax
pop esi
mov ecx, dword [esp + 0x2c]
mov dword fs:[0], ecx
add esp, 0x38
ret 4
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x10]
push eax
push esi
call sub.MFC42.DLL_CFile::Write
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CFile::Close
lea ecx, [esp + 0x10]
mov byte [esp + 0x3c], 3
call fcn.00401c3e
mov dword [esp + 0x20], 0x4032b0
lea ecx, [esp + 0x30]
mov byte [esp + 0x3c], 6
call fcn.00401c5c
lea ecx, [esp + 8]
mov dword [esp + 0x20], 0x40329c
mov dword [esp + 0x3c], 0xffffffff
call fcn.00401c5c
mov ecx, dword [esp + 0x34]
pop edi
mov eax, 1
pop esi
mov dword fs:[0], ecx
add esp, 0x38
ret 4