Function at 0x40e020
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x449e80
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x178
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
mov edx, ecx
mov dword [ebp - 0x184], edx
mov ecx, 0xf2
xor eax, eax
mov edi, dword [ebp + 0xc]
rep stosd dword es:[edi], eax
mov dword [ebp - 0x14], 1
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 4], ebx
cmp dword [edx + 4], ebx
je 0x40e080
push 2
push ebx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov esi, eax
mov dword [ebp - 0x1c], esi
jmp 0x40e0e9
mov byte [ebp - 0x144], 0
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x143]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x104
lea ecx, [ebp - 0x144]
push ecx
push 0xffffffffffffffff
mov edx, dword [ebp + 8]
push edx
call fcn.004012e4
add esp, 0x10
test eax, eax
jne 0x40e0d4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x160], eax
push 0x44fd88
lea eax, [ebp - 0x160]
push eax
call sub.MSVCRT.dll__CxxThrowException
push 2
push ebx
lea ecx, [ebp - 0x144]
push ecx
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
mov dword [ebp - 0x1c], eax
mov esi, eax
cmp esi, ebx
jne 0x40e10a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x164], eax
push 0x44fd88
lea edx, [ebp - 0x164]
push edx
call sub.MSVCRT.dll__CxxThrowException
mov dword [ebp - 0x2c], ebx
lea eax, [ebp - 0x2c]
push eax
push 0x40e6e0
push 1
push 0x10
push esi
call dword [sym.imp.KERNEL32.dll_EnumResourceLanguagesW]
mov ecx, dword [ebp - 0x2c]
push ecx
push 1
push 0x10
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceExW]
mov edi, eax
mov dword [ebp - 0x30], edi
cmp edi, ebx
jne 0x40e189
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x148], eax
cmp eax, 0x714
je 0x40e16a
cmp eax, 0x715
je 0x40e16a
mov dword [ebp - 0x168], eax
push 0x44fd88
lea edx, [ebp - 0x168]
push edx
call sub.MSVCRT.dll__CxxThrowException
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push edi
push esi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov ebx, eax
mov dword [ebp - 0x38], ebx
push edi
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x40e1c2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x16c], eax
push 0x44fd88
lea eax, [ebp - 0x16c]
push eax
call sub.MSVCRT.dll__CxxThrowException
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov edi, eax
mov dword [ebp - 0x24], edi
test edi, edi
jne 0x40e1ef
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x170], eax
push 0x44fd88
lea ecx, [ebp - 0x170]
push ecx
call sub.MSVCRT.dll__CxxThrowException
add ebx, edi
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x34], edi
push ebx
mov ecx, edi
call fcn.00401505
test eax, eax
jne 0x40e21e
mov dword [ebp - 0x174], 0xffffffff
push 0x450088
lea edx, [ebp - 0x174]
push edx
call sub.MSVCRT.dll__CxxThrowException
push ebx
mov ecx, edi
call fcn.004014e7
mov dword [ebp - 0x3c], eax
cmp word [edi + 2], 0xc
jb 0x40e238
mov ecx, dword [eax + 8]
mov edx, dword [ebp + 0xc]
mov dword [edx], ecx
cmp word [edi + 2], 0x10
jb 0x40e248
mov eax, dword [eax + 0xc]
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 4], eax
push ebx
mov ecx, edi
call fcn.004013fc
mov edi, eax
mov dword [ebp - 0x28], edi
push ebx
mov ecx, edi
call fcn.00401609
test eax, eax
jne 0x40e27c
mov dword [ebp - 0x178], 0xffffffff
push 0x450088
lea edx, [ebp - 0x178]
push edx
call sub.MSVCRT.dll__CxxThrowException
push str.StringFileInfo
mov ecx, edi
call fcn.0040143d
push eax
call dword [sym.imp.MSVCRT.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x40e54e
push ebx
mov ecx, edi
call fcn.004013f2
mov esi, eax
mov dword [ebp - 0x14c], esi
push ebx
mov ecx, esi
call fcn.004016e5
test eax, eax
jne 0x40e2d1
mov dword [ebp - 0x17c], 0xffffffff
push 0x450088
lea eax, [ebp - 0x17c]
push eax
call sub.MSVCRT.dll__CxxThrowException
push ebx
mov ecx, esi
call fcn.004016f9
mov edi, eax
mov dword [ebp - 0x150], edi
push ebx
mov ecx, edi
call fcn.004017b2
test eax, eax
jne 0x40e308
mov dword [ebp - 0x180], 0xffffffff
push 0x450088
lea ecx, [ebp - 0x180]
push ecx
call sub.MSVCRT.dll__CxxThrowException
xor eax, eax
mov ax, word [esi]
mov dword [ebp - 0x154], eax
test eax, eax
jle 0x40e54b
push ebx
mov ecx, edi
call fcn.004017b2
test eax, eax
je 0x40e54b
push ebx
mov ecx, edi
call fcn.0040184d
mov si, ax
and esi, 0xffff
mov dword [ebp - 0x158], esi
push str.CompanyName
mov ecx, edi
call fcn.00401366
push eax
call dword [sym.imp.MSVCRT.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x40e389
test esi, esi
jbe 0x40e389
cmp esi, 0x50
jb 0x40e370
mov esi, 0x4f
mov dword [ebp - 0x158], esi
push esi
push ebx
mov ecx, edi
call fcn.0040151e
push eax
mov edx, dword [ebp + 0xc]
add edx, 0x288
push edx
jmp 0x40e4df
push str.FileDescription
mov ecx, edi
call fcn.00401366
push eax
call dword [sym.imp.MSVCRT.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x40e3cd
test esi, esi
jbe 0x40e3cd
cmp esi, 0x50
jb 0x40e3b7
mov esi, 0x4f
mov dword [ebp - 0x158], esi
push esi
push ebx
mov ecx, edi
call fcn.0040151e
push eax
mov eax, dword [ebp + 0xc]
add eax, 8
push eax
jmp 0x40e4df
push str.InternalName
mov ecx, edi
call fcn.00401366
push eax
call dword [sym.imp.MSVCRT.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x40e413
test esi, esi
jbe 0x40e413
cmp esi, 0x50
jb 0x40e3fb
mov esi, 0x4f
mov dword [ebp - 0x158], esi
push esi
push ebx
mov ecx, edi
call fcn.0040151e
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 0x148
jmp 0x40e4de
push str.LegalCopyright
mov ecx, edi
call fcn.00401366
push eax
call dword [sym.imp.MSVCRT.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x40e45a
test esi, esi
jbe 0x40e45a
cmp esi, 0x50
jb 0x40e441
mov esi, 0x4f
mov dword [ebp - 0x158], esi
push esi
push ebx
mov ecx, edi
call fcn.0040151e
push eax
mov edx, dword [ebp + 0xc]
add edx, 0x328
push edx
jmp 0x40e4df
push str.OriginalFilename
mov ecx, edi
call fcn.00401366
push eax
call dword [sym.imp.MSVCRT.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x40e49d
test esi, esi
jbe 0x40e49d
cmp esi, 0x50
jb 0x40e488
mov esi, 0x4f
mov dword [ebp - 0x158], esi
push esi
push ebx
mov ecx, edi
call fcn.0040151e
push eax
mov eax, dword [ebp + 0xc]
add eax, 0xa8
push eax
jmp 0x40e4df
push 0x457400
mov ecx, edi
call fcn.00401366
push eax
call dword [sym.imp.MSVCRT.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x40e4e8
test esi, esi
jbe 0x40e4e8
cmp esi, 0x50
jb 0x40e4cb
mov esi, 0x4f
mov dword [ebp - 0x158], esi
push esi
push ebx
mov ecx, edi
call fcn.0040151e
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 0x1e8
push ecx
call dword [sym.imp.MSVCRT.dll_wcsncpy]
add esp, 0xc
xor edx, edx
mov dx, word [edi]
add edx, 3
and edx, 0xfffffffc
sub dword [ebp - 0x154], edx
mov ecx, edi
call fcn.004010be
mov edi, eax
mov dword [ebp - 0x150], edi
mov eax, dword [ebp - 0x154]
jmp 0x40e313
mov esi, dword [ebp - 0x1c]
mov dword [ebp - 4], 0xffffffff
test esi, esi
je 0x40e560
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8