Function at 0x1318d33c
Capabilities:
Extract resource via kernel32 functions
Get file size

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffde8
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.13144998
mov eax, dword [ebp - 8]
call fcn.13144998
mov edi, 0x13191bdc
xor eax, eax
push ebp
push 0x1318d7fb
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 9], 1
push 0
push 0
push 3
push 0
push 1
push 0x80000000
lea eax, [ebp - 0x11b]
mov edx, dword [ebp - 4]
call fcn.13148c34
push eax
call sub.kernel32.dll_CreateFileA_1
mov ebx, eax
cmp ebx, 0xffffffff
je 0x1318d3ac
lea eax, [ebp - 0x20]
push eax
push ebx
call sub.kernel32.dll_GetFileSize_1
mov dword [ebp - 0x1c], eax
push ebx
call sub.kernel32.dll_CloseHandle_1
push 2
push 0
lea eax, [ebp - 0x216]
mov edx, dword [ebp - 8]
call fcn.13148c34
push eax
call sub.kernel32.dll_LoadLibraryExA_1
mov esi, eax
xor eax, eax
mov dword [0x13191be0], eax
xor eax, eax
mov dword [0x13191bd8], eax
push 0
push 0x1318d1c0
push 0xe
push esi
call sub.kernel32.dll_EnumResourceNamesA
test eax, eax
je 0x1318d40c
mov eax, dword [0x13191bd8]
mov dword [0x13191be0], eax
push esi
push edi
mov esi, 0x13191be8
mov edi, 0x13194618
mov ecx, 0xa8c
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
xor eax, eax
mov dword [0x13191be4], eax
xor eax, eax
mov dword [0x13191bd8], eax
push 0
push 0x1318d1c0
push 3
push esi
call sub.kernel32.dll_EnumResourceNamesA
test eax, eax
je 0x1318d44c
mov eax, dword [0x13191bd8]
mov dword [0x13191be4], eax
push esi
push edi
mov esi, 0x13191be8
mov edi, 0x13197048
mov ecx, 0xa8c
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
push esi
call sub.kernel32.dll_FreeLibrary_1
push 2
push 0
lea eax, [ebp - 0x11b]
mov edx, dword [ebp - 4]
call fcn.13148c34
push eax
call sub.kernel32.dll_LoadLibraryExA_1
mov esi, eax
push 0
lea eax, [ebp - 0x216]
mov edx, dword [ebp - 8]
call fcn.13148c34
push eax
call sub.kernel32.dll_BeginUpdateResourceA
mov dword [ebp - 0x10], eax
mov ebx, dword [0x13191be4]
test ebx, ebx
jle 0x1318d4ea
mov dword [edi], 1
mov eax, dword [edi]
lea eax, [eax + eax*2]
lea eax, [eax + eax*8]
cmp dword [eax*4 + 0x13196fdc], 0xffff
jbe 0x1318d4c8
push 0
push 0
push 0x419
lea eax, [eax*4 + 0x13196fe0]
push eax
push 3
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_UpdateResourceA
jmp 0x1318d4e5
push 0
push 0
push 0x419
movzx eax, word [eax*4 + 0x13196fdc]
push eax
push 3
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_UpdateResourceA
inc dword [edi]
dec ebx
jne 0x1318d495
xor eax, eax
mov dword [0x13191bd8], eax
push 0
push 0x1318d1c0
push 3
push esi
call sub.kernel32.dll_EnumResourceNamesA
test eax, eax
je 0x1318d5f8
mov ebx, dword [0x13191bd8]
test ebx, ebx
jle 0x1318d5f8
mov dword [edi], 1
mov eax, dword [edi]
lea eax, [eax + eax*2]
lea eax, [eax + eax*8]
cmp dword [eax*4 + 0x13191b7c], 0xffff
jbe 0x1318d590
push 3
lea eax, [eax*4 + 0x13191b80]
push eax
push esi
call sub.kernel32.dll_FindResourceA
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
push eax
push esi
call sub.kernel32.dll_LoadResource
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
push eax
push esi
call sub.kernel32.dll_SizeofResource
push eax
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_LockResource
push eax
push 0x419
mov eax, dword [edi]
lea eax, [eax + eax*2]
lea eax, [eax + eax*8]
lea eax, [eax*4 + 0x13191b80]
push eax
push 3
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_UpdateResourceA
test eax, eax
jne 0x1318d5ef
mov byte [ebp - 9], 0
jmp 0x1318d5ef
push 3
movzx eax, word [eax*4 + 0x13191b7c]
push eax
push esi
call sub.kernel32.dll_FindResourceA
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
push eax
push esi
call sub.kernel32.dll_LoadResource
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
push eax
push esi
call sub.kernel32.dll_SizeofResource
push eax
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_LockResource
push eax
push 0x419
mov eax, dword [edi]
lea eax, [eax + eax*2]
lea eax, [eax + eax*8]
movzx eax, word [eax*4 + 0x13191b7c]
push eax
push 3
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_UpdateResourceA
test eax, eax
jne 0x1318d5ef
mov byte [ebp - 9], 0
inc dword [edi]
dec ebx
jne 0x1318d51c
mov ebx, dword [0x13191be0]
test ebx, ebx
jle 0x1318d65d
mov dword [edi], 1
mov eax, dword [edi]
lea eax, [eax + eax*2]
lea eax, [eax + eax*8]
cmp dword [eax*4 + 0x131945ac], 0xffff
jbe 0x1318d63b
push 0
push 0
push 0x419
lea eax, [eax*4 + 0x131945b0]
push eax
push 0xe
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_UpdateResourceA
jmp 0x1318d658
push 0
push 0
push 0x419
movzx eax, word [eax*4 + 0x131945ac]
push eax
push 0xe
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_UpdateResourceA
inc dword [edi]
dec ebx
jne 0x1318d608
xor eax, eax
mov dword [0x13191bd8], eax
push 0
push 0x1318d1c0
push 0xe
push esi
call sub.kernel32.dll_EnumResourceNamesA
test eax, eax
je 0x1318d76b
mov ebx, dword [0x13191bd8]
test ebx, ebx
jle 0x1318d76b
mov dword [edi], 1
mov eax, dword [edi]
lea eax, [eax + eax*2]
lea eax, [eax + eax*8]
cmp dword [eax*4 + 0x13191b7c], 0xffff
jbe 0x1318d703
push 0xe
lea eax, [eax*4 + 0x13191b80]
push eax
push esi
call sub.kernel32.dll_FindResourceA
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
push eax
push esi
call sub.kernel32.dll_LoadResource
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
push eax
push esi
call sub.kernel32.dll_SizeofResource
push eax
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_LockResource
push eax
push 0x419
mov eax, dword [edi]
lea eax, [eax + eax*2]
lea eax, [eax + eax*8]
lea eax, [eax*4 + 0x13191b80]
push eax
push 0xe
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_UpdateResourceA
test eax, eax
jne 0x1318d762
mov byte [ebp - 9], 0
jmp 0x1318d762
push 0xe
movzx eax, word [eax*4 + 0x13191b7c]
push eax
push esi
call sub.kernel32.dll_FindResourceA
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
push eax
push esi
call sub.kernel32.dll_LoadResource
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
push eax
push esi
call sub.kernel32.dll_SizeofResource
push eax
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_LockResource
push eax
push 0x419
mov eax, dword [edi]
lea eax, [eax + eax*2]
lea eax, [eax + eax*8]
movzx eax, word [eax*4 + 0x13191b7c]
push eax
push 0xe
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_UpdateResourceA
test eax, eax
jne 0x1318d762
mov byte [ebp - 9], 0
inc dword [edi]
dec ebx
jne 0x1318d68f
push 0x10
push 1
push esi
call sub.kernel32.dll_FindResourceA
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
push eax
push esi
call sub.kernel32.dll_LoadResource
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
push eax
push esi
call sub.kernel32.dll_SizeofResource
push eax
mov eax, dword [ebp - 0x18]
push eax
call sub.kernel32.dll_LockResource
push eax
push 0x419
push 1
push 0x10
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_UpdateResourceA
test eax, eax
jne 0x1318d7b4
mov byte [ebp - 9], 0
push 4
lea eax, [ebp - 0x1c]
push eax
push 0x419
push 0x3db
push 0xa
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_UpdateResourceA
push 0
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_EndUpdateResourceA
push esi
call sub.kernel32.dll_FreeLibrary_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x1318d802
lea eax, [ebp - 8]
mov edx, 2
call fcn.1314450c
ret