Function at 0x3661c627
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push esi
movzx esi, word [ebp + 0x14]
add esi, dword [ebp + 0x10]
push edi
push 0xda
push 1
push dword [ebp + 0xc]
xor edi, edi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 8], edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x14], edi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
cmp eax, edi
jne 0x3661c660
xor ax, ax
jmp 0x3661c880
push eax
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_LoadResource]
cmp eax, edi
je 0x3661c658
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dl, byte [ebp + 0x20]
mov byte [ebp + 0xf], dl
and byte [ebp + 0xf], 1
mov ecx, eax
mov dword [ebp - 0x10], ecx
je 0x3661c6b4
test dl, 8
mov ebx, dword [ebp + 0x18]
jne 0x3661c696
add ebx, 2
mov word [ebx - 2], di
cmp word [ebp + 0x14], di
jne 0x3661c6a7
mov word [ebx], di
xor ax, ax
jmp 0x3661c87f
movzx eax, word [ebp + 0x1c]
lea edi, [ebx + eax*2 - 2]
mov dword [ebp - 4], edi
jmp 0x3661c6eb
cmp word [ebp + 0x14], di
jne 0x3661c6cb
test dl, 4
mov eax, dword [ebp + 0x18]
mov byte [eax], 0
je 0x3661c69f
mov byte [eax + 1], 0
jmp 0x3661c69f
movzx eax, word [ebp + 0x1c]
lea edi, [eax + eax]
push edi
call dword [sym.imp.MSVCRT.dll_malloc]
mov dword [ebp - 8], eax
mov ebx, eax
lea eax, [edi + eax - 2]
pop ecx
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 4], eax
mov edi, eax
mov dword [ebp - 0x20], ebx
jmp 0x3661c78b
cmp ebx, edi
jae 0x3661c794
mov eax, dword [ebp + 0x10]
mov al, byte [eax]
inc dword [ebp + 0x10]
mov byte [ebp + 0x17], al
mov dword [ebp - 0x18], 8
mov al, byte [ebp + 0x17]
shr al, 7
movzx dx, al
movzx eax, word [ebp - 0xc]
mov edi, eax
imul edi, edi, 6
mov dword [ebp - 0x14], edx
movzx edx, dx
add edi, edx
mov dx, word [ecx + edi*2]
test dx, dx
je 0x3661c736
mov dword [ebp - 0xc], edx
jmp 0x3661c780
imul eax, eax, 0xc
lea esi, [eax + ecx + 4]
push esi
call fcn.3661bc14
movzx ecx, ax
lea ecx, [ebx + ecx*2]
cmp ecx, dword [ebp - 4]
jbe 0x3661c755
mov eax, dword [ebp - 4]
sub eax, ebx
sar eax, 1
movzx eax, ax
add eax, eax
mov ecx, eax
mov edx, ecx
shr ecx, 2
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
add ebx, eax
movzx eax, word [ebp - 0x14]
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 0x10]
mov ax, word [ecx + eax*2]
mov esi, dword [ebp - 0x1c]
mov word [ebp - 0xc], ax
shl byte [ebp + 0x17], 1
dec dword [ebp - 0x18]
mov edi, dword [ebp - 4]
jne 0x3661c70d
cmp dword [ebp + 0x10], esi
jb 0x3661c6f3
movzx eax, word [ebp - 0xc]
movzx esi, word [ebp - 0x14]
mov edx, eax
imul edx, edx, 6
add edx, esi
cmp word [ecx + edx*2], 0
jne 0x3661c7e0
imul eax, eax, 0xc
lea esi, [eax + ecx + 4]
push esi
call fcn.3661bc14
movzx ecx, ax
lea ecx, [ebx + ecx*2]
cmp ecx, edi
jbe 0x3661c7c7
sub edi, ebx
sar edi, 1
mov eax, edi
movzx eax, ax
add eax, eax
mov ecx, eax
mov edx, ecx
shr ecx, 2
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
add ebx, eax
dec ebx
dec ebx
cmp ebx, dword [ebp - 0x20]
jb 0x3661c7ed
cmp word [ebx], 0
je 0x3661c7e0
inc ebx
inc ebx
cmp byte [ebp + 0xf], 0
je 0x3661c819
and word [ebx], 0
test byte [ebp + 0x20], 4
je 0x3661c810
mov eax, dword [ebp + 0x18]
sub ebx, eax
sar ebx, 1
dec ebx
mov word [eax], bx
movzx ax, bl
jmp 0x3661c87f
mov eax, ebx
sub eax, dword [ebp + 0x18]
sar eax, 1
jmp 0x3661c87f
sub ebx, dword [ebp - 8]
movzx esi, word [ebp + 0x1c]
mov edi, dword [ebp + 0x18]
sar ebx, 1
test byte [ebp + 0x20], 8
push esi
je 0x3661c84d
push edi
push ebx
push dword [ebp - 8]
push dword [ebp + 8]
call fcn.3661c60a
cmp word [ebp + 0x1c], 0
mov ebx, eax
je 0x3661c847
cmp ebx, esi
jne 0x3661c847
dec ebx
mov byte [ebx + edi], 0
jmp 0x3661c872
lea eax, [edi + 1]
push eax
push ebx
push dword [ebp - 8]
push dword [ebp + 8]
call fcn.3661c60a
cmp word [ebp + 0x1c], 0
mov ebx, eax
je 0x3661c86b
cmp ebx, esi
jne 0x3661c86b
dec ebx
mov byte [edi], bl
mov byte [ebx + edi + 1], 0
push dword [ebp - 8]
call dword [sym.imp.MSVCRT.dll_free]
pop ecx
mov ax, bx
pop ebx
pop edi
pop esi
leave
ret 0x1c