Function at 0x657a18
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
push ebx
push esi
push edi
mov ebx, ecx
mov esi, edx
mov byte [ebp - 1], 0
mov dl, 1
mov eax, ebx
call fcn.0042728c
test al, al
je 0x657dc1
mov eax, esi
mov edx, dword [eax]
call dword [edx]
cmp edx, 0
jne 0x657a4e
cmp eax, 0
je 0x657dc1
push 0
push 0
mov eax, esi
call fcn.0046a140
mov eax, esi
mov edx, dword [eax]
call dword [edx]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x20]
call fcn.00406ef0
mov dword [ebp - 0x18], eax
xor edx, edx
push ebp
push 0x657dba
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, esi
mov edx, dword [eax]
call dword [edx]
mov ecx, eax
mov edx, dword [ebp - 0x18]
mov eax, esi
mov esi, dword [eax]
call dword [esi + 0xc]
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
call fcn.00657818
test al, al
jne 0x657aa9
mov eax, 0x657dd8
call fcn.00657994
push 0
mov eax, ebx
call fcn.0040b2ec
mov esi, eax
push esi
call sub.KERNEL32.DLL_BeginUpdateResourceW
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x657acd
mov eax, 0x657e10
call fcn.00657880
xor edx, edx
push ebp
push 0x657d71
push dword fs:[edx]
mov dword fs:[edx], esp
push 2
push 0
push esi
call sub.KERNEL32.DLL_LoadLibraryExW
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x657af8
mov eax, 0x657e5c
call fcn.00657880
xor edx, edx
push ebp
push 0x657d60
push dword fs:[edx]
mov dword fs:[edx], esp
push 0xe
push 0x657e90
mov eax, dword [ebp - 0xc]
push eax
call sub.KERNEL32.DLL_FindResourceW
mov ebx, eax
test ebx, ebx
jne 0x657b26
mov eax, 0x657eb0
call fcn.00657880
push ebx
mov eax, dword [ebp - 0xc]
push eax
call sub.KERNEL32.DLL_LoadResource
mov ebx, eax
test ebx, ebx
jne 0x657b40
mov eax, 0x657eec
call fcn.00657880
push ebx
call sub.KERNEL32.DLL_LockResource
mov edi, eax
test edi, edi
jne 0x657b56
mov eax, 0x657f28
call fcn.00657880
lea eax, [ebp - 0x12]
push eax
mov ecx, 0x657e90
mov edx, 0xe
mov eax, dword [ebp - 0xc]
call fcn.006567e0
test al, al
jne 0x657b7a
mov eax, 0x657f64
call fcn.00657994
push 0
push 0
movzx eax, word [ebp - 0x12]
push eax
push 0x657e90
push 0xe
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_UpdateResourceW
test eax, eax
jne 0x657ba1
mov eax, 0x657fb0
call fcn.00657880
movzx esi, word [edi + 4]
dec esi
test esi, esi
jl 0x657c11
inc esi
xor ebx, ebx
lea eax, [ebp - 0x12]
push eax
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
movzx ecx, word [edi + eax*2 + 0x12]
mov edx, 3
mov eax, dword [ebp - 0xc]
call fcn.006567e0
test al, al
jne 0x657bdb
mov eax, 0x657ff0
call fcn.00657994
push 0
push 0
movzx eax, word [ebp - 0x12]
push eax
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
movzx eax, word [edi + eax*2 + 0x12]
push eax
push 3
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_UpdateResourceW
test eax, eax
jne 0x657c0d
mov eax, 0x65803c
call fcn.00657880
inc ebx
dec esi
jne 0x657bad
mov eax, dword [ebp - 0x18]
movzx eax, word [eax + 4]
imul eax, eax, 0xe
add eax, 6
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
call fcn.00406ef0
mov dword [ebp - 0x10], eax
xor edx, edx
push ebp
push 0x657d42
push dword fs:[edx]
mov dword fs:[edx], esp
movzx eax, word [edi]
mov edx, dword [ebp - 0x10]
mov word [edx], ax
movzx eax, word [edi + 2]
mov edx, dword [ebp - 0x10]
mov word [edx + 2], ax
mov eax, dword [ebp - 0x18]
movzx eax, word [eax + 4]
mov edx, dword [ebp - 0x10]
mov word [edx + 4], ax
movzx esi, ax
dec esi
test esi, esi
jl 0x657ca2
inc esi
xor ebx, ebx
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [ebp - 0x10]
mov ecx, ebx
add ecx, ecx
mov edi, dword [ebp - 0x18]
lea edi, [edi + ecx*8 + 6]
mov ecx, dword [edi]
mov dword [edx + eax*2 + 6], ecx
mov ecx, dword [edi + 4]
mov dword [edx + eax*2 + 0xa], ecx
mov ecx, dword [edi + 8]
mov dword [edx + eax*2 + 0xe], ecx
mov edx, dword [ebp - 0x10]
mov ecx, ebx
inc ecx
mov word [edx + eax*2 + 0x12], cx
inc ebx
dec esi
jne 0x657c67
mov eax, dword [ebp - 0x10]
movzx esi, word [eax + 4]
dec esi
test esi, esi
jl 0x657cfd
inc esi
xor ebx, ebx
mov edi, ebx
add edi, edi
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + edi*8 + 0xe]
push eax
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + edi*8 + 0x12]
add eax, dword [ebp - 0x18]
push eax
push 0x409
mov eax, ebx
add eax, eax
add eax, eax
add eax, eax
sub eax, ebx
mov edx, dword [ebp - 0x10]
movzx eax, word [edx + eax*2 + 0x12]
push eax
push 3
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_UpdateResourceW
test eax, eax
jne 0x657cf9
mov eax, 0x65807c
call fcn.00657880
inc ebx
dec esi
jne 0x657cb1
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x409
push 0x657e90
push 0xe
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_UpdateResourceW
test eax, eax
jne 0x657d28
mov eax, 0x6580bc
call fcn.00657880
mov byte [ebp - 1], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x657d49
mov eax, dword [ebp - 0x10]
call fcn.00406f0c
ret
movzx eax, byte [ebp - 1]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret