Function at 0x40aff8
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
push ebx
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x14], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x40b2cd
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x1c]
call fcn.00404080
xor eax, eax
mov dword [ebp - 4], eax
xor edx, edx
push ebp
push 0x40b2ab
push dword fs:[edx]
mov dword fs:[edx], esp
push 2
push 0
push ebx
call sub.kernel32.dll_LoadLibraryExA_1
mov dword [ebp - 4], eax
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 4]
call fcn.0040ae10
cmp dword [ebp - 0x1c], 0
setne al
test al, al
jne 0x40b0fe
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_FreeLibrary_1
push 0x40b2dc
call sub.kernel32.dll_LoadLibraryA
mov dword [ebp - 4], eax
push 3
push 0x40b2e8
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_FindResourceA
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_LoadResource
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_LockResource
mov dword [ebp - 0x10], eax
mov eax, dword [0x40e538]
cmp dword [eax], 2
jne 0x40b0bc
push 0
mov eax, dword [ebp - 0x14]
push eax
call sub.kernel32.dll_BeginUpdateResourceA
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_SizeofResource
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x409
push 1
push 3
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_UpdateResourceA
push 0
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_EndUpdateResourceA
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_FreeLibrary_1
call fcn.00403b8c
jmp 0x40b2b2
lea eax, [ebp - 0x20]
call fcn.00404080
lea eax, [ebp - 0x24]
call fcn.00404080
mov edx, dword [ebp - 0x1c]
mov eax, 0x40b2f4
call fcn.004045d0
mov ecx, eax
lea eax, [ebp - 0x1c]
mov edx, 1
call fcn.00404588
lea eax, [ebp - 0x20]
push eax
mov edx, dword [ebp - 0x1c]
mov eax, 0x40b300
call fcn.004045d0
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x1c]
call fcn.00404548
mov edx, dword [ebp - 0x1c]
mov eax, 0x40b2f4
call fcn.004045d0
mov ecx, eax
lea eax, [ebp - 0x1c]
mov edx, 1
call fcn.00404588
lea eax, [ebp - 0x24]
push eax
mov edx, dword [ebp - 0x1c]
mov eax, 0x40b30c
call fcn.004045d0
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [ebp - 0x1c]
call fcn.00404548
mov edx, dword [ebp - 0x1c]
mov eax, 0x40b30c
call fcn.004045d0
mov ecx, eax
lea eax, [ebp - 0x1c]
mov edx, 1
call fcn.00404588
xor eax, eax
push ebp
push 0x40b20a
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x24]
cmp byte [eax], 0x23
jne 0x40b1e5
lea eax, [ebp - 0x24]
mov ecx, 1
mov edx, 1
call fcn.00404588
push 0xe
mov eax, dword [ebp - 0x24]
call fcn.00406938
push eax
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_FindResourceA
mov dword [ebp - 8], eax
jmp 0x40b1fc
push 0xe
mov eax, dword [ebp - 0x24]
call fcn.004044e8
push eax
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_FindResourceA
mov dword [ebp - 8], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40b211
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40b2d4
lea eax, [ebp - 0x24]
mov edx, 3
call fcn.004040a4
ret