Function at 0x528d28
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.0040550c
xor eax, eax
push ebp
push 0x5290f1
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, 0x549fd4
call fcn.0040505c
push 2
push 0
mov eax, dword [ebp - 4]
call fcn.0040551c
push eax
call sub.kernel32.dll_LoadLibraryExA_1
mov dword [0x549fdc], eax
cmp dword [0x549fdc], 0
jne 0x528d9a
mov eax, 0x549fd4
mov edx, 0x52910c
call fcn.004050b0
jmp 0x5290cb
mov eax, 0x54a424
call fcn.0040505c
push 0
push 0x528c28
push 0xe
mov eax, dword [0x549fdc]
push eax
call sub.kernel32.dll_EnumResourceNamesA
lea eax, [ebp - 0x18]
mov edx, dword [0x54a424]
call fcn.004050f4
mov edx, dword [ebp - 0x18]
mov eax, 0x52912c
call fcn.00405660
test eax, eax
jle 0x528dfa
lea eax, [ebp - 0x20]
push eax
mov ecx, 0xa
mov edx, 2
mov eax, dword [ebp - 0x18]
call fcn.0040557c
mov eax, dword [ebp - 0x20]
call fcn.0040d290
mov dword [ebp - 0x14], eax
jmp 0x528e00
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
push 0xe
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [0x549fdc]
push eax
call sub.kernel32.dll_FindResourceA
mov dword [0x549fe0], eax
cmp dword [0x549fe0], 0
jne 0x528e3e
mov eax, 0x549fd4
mov edx, 0x529138
call fcn.004050b0
mov eax, dword [0x549fdc]
push eax
call sub.kernel32.dll_FreeLibrary_1
jmp 0x5290cb
mov eax, dword [0x549fe0]
push eax
mov eax, dword [0x549fdc]
push eax
call sub.kernel32.dll_LoadResource
mov dword [0x549fe4], eax
cmp dword [0x549fe4], 0
jne 0x528e7c
mov eax, 0x549fd4
mov edx, 0x529158
call fcn.004050b0
mov eax, dword [0x549fdc]
push eax
call sub.kernel32.dll_FreeLibrary_1
jmp 0x5290cb
mov eax, dword [0x549fe4]
push eax
call sub.kernel32.dll_LockResource
mov dword [0x549fe8], eax
cmp dword [0x549fe8], 0
jne 0x528eb4
mov eax, 0x549fd4
mov edx, 0x529178
call fcn.004050b0
mov eax, dword [0x549fdc]
push eax
call sub.kernel32.dll_FreeLibrary_1
jmp 0x5290cb
mov eax, dword [0x549fe8]
movzx eax, word [eax + 4]
test eax, eax
jl 0x5290c0
inc eax
mov dword [ebp - 0x1c], eax
mov dword [0x549fec], 0
push 3
mov eax, dword [0x549fec]
mov edx, eax
shl eax, 3
sub eax, edx
mov edx, dword [0x549fe8]
movzx eax, word [edx + eax*2 + 0x12]
push eax
mov eax, dword [0x549fdc]
push eax
call sub.kernel32.dll_FindResourceA
mov dword [0x549fe0], eax
cmp dword [0x549fe0], 0
jne 0x528f25
mov eax, 0x549fd4
mov edx, 0x529198
call fcn.004050b0
mov eax, dword [0x549fdc]
push eax
call sub.kernel32.dll_FreeLibrary_1
jmp 0x5290cb
mov eax, dword [0x549fe0]
push eax
mov eax, dword [0x549fdc]
push eax
call sub.kernel32.dll_LoadResource
mov dword [0x549fe4], eax
cmp dword [0x549fe4], 0
jne 0x528f63
mov eax, 0x549fd4
mov edx, 0x5291bc
call fcn.004050b0
mov eax, dword [0x549fdc]
push eax
call sub.kernel32.dll_FreeLibrary_1
jmp 0x5290cb
mov eax, dword [0x549fe0]
push eax
mov eax, dword [0x549fdc]
push eax
call sub.kernel32.dll_SizeofResource
mov ebx, eax
mov eax, dword [0x549fec]
shl eax, 2
mov dword [eax*8 + 0x54a212], ebx
xor edx, edx
push ebp
push 0x5290aa
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, ebx
call fcn.00402e00
mov esi, eax
mov eax, dword [0x549fec]
shl eax, 2
mov dword [eax*8 + 0x54a20e], esi
mov eax, dword [0x549fe4]
push eax
call sub.kernel32.dll_LockResource
mov edx, eax
mov eax, dword [0x549fec]
shl eax, 2
mov ecx, dword [eax*8 + 0x54a212]
mov eax, esi
call fcn.004084d8
mov eax, dword [0x549fec]
shl eax, 2
lea eax, [eax*8 + 0x54a202]
call fcn.00528bd8
test al, al
jne 0x52900a
mov eax, 0x549fd4
mov edx, 0x5291bc
call fcn.004050b0
mov eax, dword [0x549fdc]
push eax
call sub.kernel32.dll_FreeLibrary_1
call fcn.00404a5c
jmp 0x5290cb
mov ecx, dword [0x549fec]
shl ecx, 2
mov eax, dword [ecx*8 + 0x54a206]
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 8]
cdq
cmp edx, dword [esp + 4]
jne 0x52902b
cmp eax, dword [esp]
pop edx
pop eax
jne 0x529088
mov eax, dword [ecx*8 + 0x54a202]
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 0xc]
cdq
cmp edx, dword [esp + 4]
jne 0x529047
cmp eax, dword [esp]
pop edx
pop eax
jne 0x529088
mov eax, dword [ecx*8 + 0x54a20a]
xor edx, edx
push edx
push eax
mov eax, dword [ebp + 8]
cdq
cmp edx, dword [esp + 4]
jne 0x529063
cmp eax, dword [esp]
pop edx
pop eax
jne 0x529088
lea eax, [ecx*8 + 0x54a202]
call fcn.00528cc8
mov dword [ebp - 0x10], eax
mov eax, dword [0x549fdc]
push eax
call sub.kernel32.dll_FreeLibrary_1
call fcn.00404a5c
jmp 0x5290cb
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5290b1
mov eax, dword [0x549fec]
shl eax, 2
mov eax, dword [eax*8 + 0x54a20e]
call fcn.00402e30
ret
mov eax, dword [0x549fdc]
push eax
call sub.kernel32.dll_FreeLibrary_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5290f8
lea eax, [ebp - 0x20]
call fcn.0040505c
lea eax, [ebp - 0x18]
call fcn.0040505c
lea eax, [ebp - 4]
call fcn.0040505c
ret