Function at 0x4cc774
Capabilities:
Enumerate pe sections

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffb8
mov dword [esp], ecx
mov esi, edx
mov ebx, eax
lea edi, [esp + 0x2c]
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x20]
dec eax
mov dword [esp + 0x18], eax
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x2c]
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x18]
mov eax, ebx
call fcn.00421e60
mov dword [esp + 4], eax
mov eax, esi
call fcn.00421ddc
cmp al, 6
jne 0x4cc924
mov edx, dword [esp + 0x18]
mov eax, esi
call fcn.00421e60
mov dword [esp + 8], eax
lea edx, [esp + 0x44]
mov eax, dword [esp]
call fcn.004d63c0
mov ax, word [esp + 0x44]
mov word [esp + 0x38], ax
mov al, byte [esp + 0x46]
mov byte [esp + 0x3a], al
mov eax, dword [esp + 0x14]
shl eax, 3
lea eax, [eax + eax*2]
add eax, 0x1f
and eax, 0xffffffe0
test eax, eax
jns 0x4cc7ff
add eax, 7
sar eax, 3
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
test eax, eax
jl 0x4ccad8
inc eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x10]
mov edx, eax
imul edx, dword [esp + 0x14]
mov dword [esp + 0x1c], edx
imul dword [esp + 0x20]
add eax, dword [esp + 8]
mov dword [esp + 0xc], eax
mov esi, dword [esp + 0x14]
dec esi
test esi, esi
jl 0x4cc911
inc esi
xor ebx, ebx
mov ebp, dword [esp + 0x1c]
add ebp, ebx
mov eax, dword [esp + 4]
mov eax, dword [eax + ebp*4]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x34]
mov dword [edi], eax
mov eax, dword [esp + 0x38]
mov dword [edi + 4], eax
xor eax, eax
mov al, byte [esp + 0x28]
xor ecx, ecx
mov cl, byte [esp + 0x2b]
imul ecx
mov ebp, 0xff
xor edx, edx
div ebp
add al, byte [edi + 4]
push eax
xor eax, eax
mov al, byte [edi + 4]
imul ecx
mov ebp, 0xff
xor edx, edx
div ebp
pop edx
sub dl, al
mov byte [edi + 4], dl
xor eax, eax
mov al, byte [esp + 0x29]
imul ecx
mov ebp, 0xff
xor edx, edx
div ebp
add al, byte [edi + 5]
push eax
xor eax, eax
mov al, byte [edi + 5]
imul ecx
mov ebp, 0xff
xor edx, edx
div ebp
pop edx
sub dl, al
mov byte [edi + 5], dl
xor eax, eax
mov al, byte [esp + 0x2a]
imul ecx
mov ebp, 0xff
xor edx, edx
div ebp
add al, byte [edi + 6]
push eax
xor eax, eax
mov al, byte [edi + 6]
imul ecx
mov ecx, 0xff
xor edx, edx
div ecx
pop edx
sub dl, al
mov byte [edi + 6], dl
lea eax, [ebx + ebx*2]
mov edx, dword [esp + 0xc]
mov cx, word [edi + 4]
mov word [edx + eax], cx
mov cl, byte [edi + 6]
mov byte [edx + eax + 2], cl
inc ebx
dec esi
jne 0x4cc84e
inc dword [esp + 0x10]
dec dword [esp + 0x40]
jne 0x4cc81f
jmp 0x4ccad8
mov eax, esi
call fcn.00421ddc
cmp al, 7
jne 0x4cc99c
mov edx, dword [esp + 0x18]
mov eax, esi
call fcn.00421e60
mov edi, eax
mov eax, dword [esp + 0x18]
test eax, eax
jl 0x4ccad8
inc eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x10]
imul dword [esp + 0x14]
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x14]
dec esi
test esi, esi
jl 0x4cc98d
inc esi
xor ebx, ebx
mov ebp, dword [esp + 0x1c]
add ebp, ebx
mov eax, dword [esp + 4]
mov eax, dword [eax + ebp*4]
mov edx, dword [esp]
call fcn.004d6104
mov dword [edi + ebp*4], eax
inc ebx
dec esi
jne 0x4cc971
inc dword [esp + 0x10]
dec dword [esp + 0x40]
jne 0x4cc955
jmp 0x4ccad8
mov eax, esi
call fcn.00421cf8
call fcn.0041d564
mov dword [esp + 0x3c], eax
xor eax, eax
mov dword [esp + 0x38], eax
lea edx, [esp + 0x44]
mov eax, dword [esp]
call fcn.004d63a4
mov ax, word [esp + 0x44]
mov word [esp + 0x38], ax
mov al, byte [esp + 0x46]
mov byte [esp + 0x3a], al
mov eax, dword [esp + 0x18]
test eax, eax
jl 0x4ccad8
inc eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x10]
imul dword [esp + 0x14]
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x14]
dec esi
test esi, esi
jl 0x4ccaca
inc esi
xor ebx, ebx
mov eax, dword [esp + 0x1c]
add eax, ebx
mov edx, dword [esp + 4]
mov eax, dword [edx + eax*4]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x34]
mov dword [edi], eax
mov eax, dword [esp + 0x38]
mov dword [edi + 4], eax
xor eax, eax
mov al, byte [esp + 0x2a]
xor ecx, ecx
mov cl, byte [esp + 0x2b]
imul ecx
mov ebp, 0xff
xor edx, edx
div ebp
add al, byte [edi + 4]
push eax
xor eax, eax
mov al, byte [edi + 4]
imul ecx
mov ebp, 0xff
xor edx, edx
div ebp
pop edx
sub dl, al
mov byte [edi + 4], dl
xor eax, eax
mov al, byte [esp + 0x29]
imul ecx
mov ebp, 0xff
xor edx, edx
div ebp
add al, byte [edi + 5]
push eax
xor eax, eax
mov al, byte [edi + 5]
imul ecx
mov ebp, 0xff
xor edx, edx
div ebp
pop edx
sub dl, al
mov byte [edi + 5], dl
xor eax, eax
mov al, byte [esp + 0x28]
imul ecx
mov ebp, 0xff
xor edx, edx
div ebp
add al, byte [edi + 6]
push eax
xor eax, eax
mov al, byte [edi + 6]
imul ecx
mov ecx, 0xff
xor edx, edx
div ecx
pop edx
sub dl, al
mov byte [edi + 6], dl
mov eax, dword [edi + 4]
push eax
mov eax, dword [esp + 0x14]
push eax
push ebx
mov eax, dword [esp + 0x48]
push eax
call sub.gdi32.dll_SetPixel
inc ebx
dec esi
jne 0x4cca09
inc dword [esp + 0x10]
dec dword [esp + 0x40]
jne 0x4cc9e9
add esp, 0x48
pop ebp
pop edi
pop esi
pop ebx
ret