Function at 0x4015a0
Capabilities:
Copy file
Extract resource via kernel32 functions
Get common file path
Get file size
Read file via mapping

Disassembly:
push 0xffffffffffffffff
push 0x437268
mov eax, dword fs:[0]
push eax
sub esp, 0x628
mov eax, dword [0x455028]
xor eax, esp
mov dword [esp + 0x624], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x455028]
xor eax, esp
push eax
lea eax, [esp + 0x63c]
mov dword fs:[0], eax
push 0x104
lea eax, [esp + 0x22c]
push eax
xor ebx, ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [esp + 0x228]
push ecx
lea ecx, [esp + 0x18]
call dword [0x443828]
push 1
push ebx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x64c], ebx
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::operator__]
movzx edx, ax
push edx
lea ecx, [esp + 0x20]
call dword [0x443758]
lea ecx, [esp + 0x18]
mov byte [esp + 0x644], 1
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::MakeUpper]
push ebx
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::GetAt]
movzx eax, ax
push eax
push ebx
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::SetAt]
mov edi, dword [0x4554ac]
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push edi
mov esi, eax
push 0x90
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov edi, eax
cmp edi, ebx
je 0x401765
push edi
push esi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
push edi
push esi
mov ebp, eax
call dword [sym.imp.KERNEL32.dll_LoadResource]
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
cmp ebp, ebx
je 0x401765
cmp eax, ebx
je 0x401765
mov ecx, dword [eax]
lea edx, [esp + 0x430]
push edx
sub ecx, 0x1310ff78
push 0x104
mov dword [0x45742c], ecx
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jl 0x401765
lea eax, [esp + 0x20]
push eax
push ebx
push str.DF_
lea ecx, [esp + 0x43c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
jl 0x401765
mov eax, dword [esp + 0x14]
push ebx
lea edx, [esp + 0x24]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov edi, dword [0x4554ac]
push ebx
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x24], ebx
call dword [sym.imp.KERNEL32.dll_BeginUpdateResourceW]
mov esi, eax
cmp esi, ebx
je 0x401765
push 4
lea edx, [esp + 0x20]
push edx
push 0x804
push 0x90
push edi
push esi
call dword [sym.imp.KERNEL32.dll_UpdateResourceW]
test eax, eax
je 0x401765
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_EndUpdateResourceW]
test eax, eax
je 0x401765
push ebx
push 0xc000002
push 3
push ebx
push 1
push 0x80000000
lea eax, [esp + 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x4017a3
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
xor eax, eax
mov ecx, dword [esp + 0x63c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x624]
xor ecx, esp
call fcn.00436590
add esp, 0x634
ret
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push ebx
mov ebp, eax
push ebp
push ebx
push 2
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov edi, eax
cmp edi, 0xffffffff
jne 0x4017cf
push esi
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push edi
call esi
jmp 0x401765
push ebx
push ebx
push ebx
push 4
push edi
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov ebx, eax
mov ecx, ebp
mov edx, ebx
call fcn.00420320
push ebx
mov dword [0x457430], eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call edi
push esi
call edi
mov ecx, dword [0x457430]
cmp ecx, dword [0x45742c]
lea ecx, [esp + 0x18]
jne 0x401769
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, 1
jmp 0x40177b