Function at 0x657850
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.00427274
test al, al
je 0x657bf9
mov eax, esi
mov edx, dword [eax]
call dword [edx]
cmp edx, 0
jne 0x657886
cmp eax, 0
je 0x657bf9
push 0
push 0
mov eax, esi
call fcn.0046a078
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 0x657bf2
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.00657650
test al, al
jne 0x6578e1
mov eax, 0x657c10
call fcn.006577cc
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 0x657905
mov eax, 0x657c48
call fcn.006576b8
xor edx, edx
push ebp
push 0x657ba9
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 0x657930
mov eax, 0x657c94
call fcn.006576b8
xor edx, edx
push ebp
push 0x657b98
push dword fs:[edx]
mov dword fs:[edx], esp
push 0xe
push 0x657cc8
mov eax, dword [ebp - 0xc]
push eax
call sub.KERNEL32.DLL_FindResourceW
mov ebx, eax
test ebx, ebx
jne 0x65795e
mov eax, 0x657ce8
call fcn.006576b8
push ebx
mov eax, dword [ebp - 0xc]
push eax
call sub.KERNEL32.DLL_LoadResource
mov ebx, eax
test ebx, ebx
jne 0x657978
mov eax, 0x657d24
call fcn.006576b8
push ebx
call sub.KERNEL32.DLL_LockResource
mov edi, eax
test edi, edi
jne 0x65798e
mov eax, 0x657d60
call fcn.006576b8
lea eax, [ebp - 0x12]
push eax
mov ecx, 0x657cc8
mov edx, 0xe
mov eax, dword [ebp - 0xc]
call fcn.00656618
test al, al
jne 0x6579b2
mov eax, 0x657d9c
call fcn.006577cc
push 0
push 0
movzx eax, word [ebp - 0x12]
push eax
push 0x657cc8
push 0xe
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_UpdateResourceW
test eax, eax
jne 0x6579d9
mov eax, 0x657de8
call fcn.006576b8
movzx esi, word [edi + 4]
dec esi
test esi, esi
jl 0x657a49
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.00656618
test al, al
jne 0x657a13
mov eax, 0x657e28
call fcn.006577cc
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 0x657a45
mov eax, 0x657e74
call fcn.006576b8
inc ebx
dec esi
jne 0x6579e5
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 0x657b7a
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 0x657ada
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 0x657a9f
mov eax, dword [ebp - 0x10]
movzx esi, word [eax + 4]
dec esi
test esi, esi
jl 0x657b35
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 0x657b31
mov eax, 0x657eb4
call fcn.006576b8
inc ebx
dec esi
jne 0x657ae9
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0x409
push 0x657cc8
push 0xe
mov eax, dword [ebp - 8]
push eax
call sub.KERNEL32.DLL_UpdateResourceW
test eax, eax
jne 0x657b60
mov eax, 0x657ef4
call fcn.006576b8
mov byte [ebp - 1], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x657b81
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