Function at 0x5d3310
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
push ebx
push esi
push edi
mov ebx, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00405988
xor eax, eax
push ebp
push 0x5d369b
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 5], 0
xor edx, edx
push ebp
push 0x5d3670
push dword fs:[edx]
mov dword fs:[edx], esp
mov dl, 1
mov eax, dword [0x41a398]
call fcn.00404560
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0xc]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x58]
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx]
call fcn.00402ddc
mov edi, eax
push 0
push 0
mov eax, dword [ebp - 0xc]
call fcn.0041f6a4
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx]
mov ecx, eax
mov edx, edi
mov eax, dword [ebp - 0xc]
call fcn.0041f8b0
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx]
mov edx, eax
mov eax, edi
call fcn.005d3278
test al, al
jne 0x5d33ad
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5d3685
push 0
mov eax, dword [ebp - 4]
call fcn.00405998
mov ebx, eax
push ebx
call sub.kernel32.dll_BeginUpdateResourceA
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x5d33d5
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5d3685
push 2
push 0
push ebx
call sub.kernel32.dll_LoadLibraryExA
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x5d33f5
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5d3685
push 0xe
push 0x5d36b0
mov eax, dword [ebp - 0x14]
push eax
call sub.kernel32.dll_FindResourceA
test eax, eax
jne 0x5d3416
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5d3685
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.kernel32.dll_LoadResource
test eax, eax
jne 0x5d3431
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5d3685
push eax
call sub.kernel32.dll_LockResource
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x5d344d
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5d3685
lea eax, [ebp - 0x1e]
push eax
mov ecx, 0x5d36b0
mov edx, 0xe
mov eax, dword [ebp - 0x14]
call fcn.005d32ec
test al, al
jne 0x5d3474
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5d3685
push 0
push 0
movzx eax, word [ebp - 0x1e]
push eax
push 0x5d36b0
push 0xe
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_UpdateResourceA
test eax, eax
jne 0x5d349e
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5d3685
mov eax, dword [ebp - 0x18]
movzx esi, word [eax + 4]
dec esi
test esi, esi
jl 0x5d351d
inc esi
xor ebx, ebx
lea eax, [ebp - 0x1e]
push eax
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [ebp - 0x18]
movzx ecx, word [edx + eax*2 + 0x12]
mov edx, 3
mov eax, dword [ebp - 0x14]
call fcn.005d32ec
test al, al
jne 0x5d34e1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5d3685
push 0
push 0
movzx eax, word [ebp - 0x1e]
push eax
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [ebp - 0x18]
movzx eax, word [edx + eax*2 + 0x12]
push eax
push 3
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_UpdateResourceA
test eax, eax
jne 0x5d3519
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5d3685
inc ebx
dec esi
jne 0x5d34ad
movzx eax, word [edi + 4]
imul eax, eax, 0xe
add eax, 6
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
call fcn.00402ddc
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x18]
movzx eax, word [eax]
mov edx, dword [ebp - 0x1c]
mov word [edx], ax
mov eax, dword [ebp - 0x18]
movzx eax, word [eax + 2]
mov edx, dword [ebp - 0x1c]
mov word [edx + 2], ax
movzx eax, word [edi + 4]
mov edx, dword [ebp - 0x1c]
mov word [edx + 4], ax
movzx esi, ax
dec esi
test esi, esi
jl 0x5d35a7
inc esi
xor ebx, ebx
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [ebp - 0x1c]
lea eax, [edx + eax*2 + 6]
mov edx, ebx
add edx, edx
mov ecx, dword [edi + edx*8 + 6]
mov dword [eax], ecx
mov ecx, dword [edi + edx*8 + 0xa]
mov dword [eax + 4], ecx
mov ecx, dword [edi + edx*8 + 0xe]
mov dword [eax + 8], ecx
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [ebp - 0x1c]
mov ecx, ebx
inc ecx
mov word [edx + eax*2 + 0x12], cx
inc ebx
dec esi
jne 0x5d3565
mov eax, dword [ebp - 0x1c]
movzx esi, word [eax + 4]
dec esi
test esi, esi
jl 0x5d3602
inc esi
xor ebx, ebx
mov eax, ebx
add eax, eax
mov eax, dword [edi + eax*8 + 0xe]
push eax
mov eax, ebx
add eax, eax
mov eax, dword [edi + eax*8 + 0x12]
add eax, edi
push eax
push 0x409
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [ebp - 0x1c]
movzx eax, word [edx + eax*2 + 0x12]
push eax
push 3
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_UpdateResourceA
test eax, eax
jne 0x5d35fe
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5d3685
inc ebx
dec esi
jne 0x5d35b6
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x1c]
push eax
push 0x409
push 0x5d36b0
push 0xe
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_UpdateResourceA
test eax, eax
jne 0x5d362d
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5d3685
mov eax, dword [ebp - 0x1c]
call fcn.00402df8
mov eax, dword [ebp - 0x14]
push eax
call sub.kernel32.dll_FreeLibrary
push 0
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_EndUpdateResourceA
test eax, eax
jne 0x5d3657
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5d3685
mov eax, dword [ebp - 0xc]
call fcn.00404590
mov eax, edi
call fcn.00402df8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5d3681
mov byte [ebp - 5], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5d36a2
lea eax, [ebp - 4]
call fcn.004054d4
ret