Function at 0x52bf70
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x24
mov eax, dword [0x6a3b20]
xor eax, esp
mov dword [esp + 0x20], eax
push ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 0x1c]
mov word [esi + 0x11], 0
mov cl, byte [eax + 0x20]
mov byte [esi + 0x13], cl
movzx ecx, byte [eax + 5]
movzx edx, byte [eax + 6]
add edx, ecx
xor ecx, ecx
push edi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x18], ecx
cmp byte [eax + 4], cl
jbe 0x52c100
mov dword [esp + 0x10], ecx
jmp 0x52bfd4
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 0x1c]
mov edi, dword [esp + 0x10]
lea edi, [edi + eax + 0x10]
cmp ecx, 1
je 0x52bfed
mov dword [esp + 0x14], edx
cmp ecx, 2
jne 0x52bff5
mov dword [esp + 0x14], 0
mov edx, dword [esi + 0x14]
mov eax, dword [edx]
mov ebp, dword [edi]
lea ecx, [esi + 0x14]
cmp eax, 1
je 0x52c049
test eax, eax
je 0x52c049
test dword [edx + 8], 0x7fffffff
jne 0x52c02b
mov eax, 2
push eax
push 0
push 4
push 4
call dword [0x5a7a78]
add esp, 0x10
mov dword [esi + 0x14], eax
jmp 0x52c049
push ecx
mov eax, esp
mov dword [eax], 0
mov eax, dword [ecx]
mov edx, dword [eax + 8]
mov eax, dword [eax + 4]
and edx, 0x7fffffff
push edx
push eax
call fcn.00420150
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 0xc]
lea edx, [ecx + ebp*4]
mov ecx, dword [edi + 0x10]
add dword [eax + edx], ecx
mov ecx, dword [esp + 0x14]
mov edx, dword [edi + 4]
mov ebp, dword [edi]
shl edx, cl
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx]
mov dword [esp + ebp*4 + 0x20], edx
cmp eax, 1
je 0x52c0ba
test eax, eax
je 0x52c0ba
test dword [ecx + 8], 0x7fffffff
jne 0x52c098
mov eax, 2
push eax
push 0
push 4
push 4
call dword [0x5a7a78]
add esp, 0x10
mov dword [esi + 0x18], eax
jmp 0x52c0ba
push ecx
mov eax, esp
mov dword [eax], 0
mov eax, dword [esi + 0x18]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
and ecx, 0x7fffffff
push ecx
push edx
lea ecx, [esi + 0x18]
call fcn.00420150
mov eax, dword [esi + 0x18]
mov ecx, dword [eax + 0xc]
lea edx, [ecx + ebp*4]
inc dword [eax + edx]
mov al, byte [edi + 0x10]
mov ecx, dword [esp + 0x14]
shl al, cl
movzx ecx, byte [esi + 0x13]
add byte [esi + 0x11], al
cmp dword [edi + 0x10], ecx
je 0x52c0df
mov byte [esi + 0x13], 0
mov edx, dword [esi + 0x1c]
mov eax, dword [esp + 0x18]
movzx ecx, byte [edx + 4]
add dword [esp + 0x10], 0x20
mov edx, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x18], eax
cmp eax, ecx
jl 0x52bfd0
xor ecx, ecx
cmp byte [esi + 0x10], cl
jbe 0x52c120
mov al, byte [esi + 0x12]
lea ebx, [ebx]
add al, byte [esp + ecx*4 + 0x20]
inc ecx
mov byte [esi + 0x12], al
movzx edi, byte [esi + 0x10]
cmp ecx, edi
jl 0x52c110
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 8]
and eax, 4
xor ecx, ecx
or eax, ecx
jne 0x52c13b
mov al, byte [esi + 0x12]
add al, al
add al, al
add al, al
mov byte [esi + 0x12], al
mov cl, dl
shr byte [esi + 0x11], cl
shr byte [esi + 0x12], cl
mov ecx, dword [esp + 0x30]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0058077e
add esp, 0x24
ret
sub esp, 0x1c
push ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 8]
push edi
cmp eax, 0xffffffff
jne 0x52c1e8
push str.Invalid_pixel_format
push 0
push 0
push 0
lea ecx, [esp + 0x28]
call dword [0x5a7d50]
push eax
call dword [0x5a7730]
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
push eax
mov dword [esp + 0x14], 0
call fcn.00563d3e
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
lea eax, [esp + 0x10]
js 0x52c209
lea eax, [esp + 0x14]
mov al, byte [eax]
mov byte [esi + 0x10], al
mov ecx, dword [esi + 0x14]
mov edx, dword [ecx + 8]
movzx eax, al
and edx, 0x7fffffff
cmp eax, edx
jle 0x52c23a
push ecx
mov ecx, esp
mov dword [ecx], 0
push eax
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + 4]
push ecx
lea ecx, [esi + 0x14]
call fcn.00420150
mov eax, dword [esi + 0x14]
mov ecx, dword [eax]
cmp ecx, 1
je 0x52c248
test ecx, ecx
jne 0x52c24f
or dword [eax + 8], 0x80000000
mov edx, dword [esi + 0x18]
movzx eax, byte [esi + 0x10]
mov ecx, dword [edx + 8]
and ecx, 0x7fffffff
cmp eax, ecx
jle 0x52c27c
push ecx
mov ecx, esp
mov dword [ecx], 0
mov edx, dword [esi + 0x18]
push eax
mov eax, dword [edx + 4]
push eax
lea ecx, [esi + 0x18]
call fcn.00420150
mov ebx, dword [esi + 0x18]
mov eax, dword [ebx]
cmp eax, 1
je 0x52c28a
test eax, eax
jne 0x52c291
or dword [ebx + 8], 0x80000000
mov ebp, dword [esi + 0x14]
mov ebx, dword [ebp + 8]
movzx eax, byte [esi + 0x10]
mov ecx, ebx
and ecx, 0x7fffffff
xor edx, edx
cmp eax, ecx
jg 0x52c2ba
test ebx, ebx
js 0x52c2c1
cmp eax, dword [ebp + 4]
jge 0x52c2c1
mov ebx, ecx
sar ebx, 1
cmp eax, ebx
jge 0x52c2c1
mov edx, 8
mov ecx, eax
push edx
push ecx
push eax
lea ecx, [esi + 0x14]
call fcn.00420150
mov edi, dword [esi + 0x18]
mov edx, dword [edi + 8]
movzx ecx, byte [esi + 0x10]
mov eax, edx
and eax, 0x7fffffff
xor ebx, ebx
cmp ecx, eax
jg 0x52c2f4
test edx, edx
js 0x52c2fb
cmp ecx, dword [edi + 4]
jge 0x52c2fb
mov edx, eax
sar edx, 1
cmp ecx, edx
jge 0x52c2fb
mov ebx, 8
mov eax, ecx
push ebx
push eax
push ecx
lea ecx, [esi + 0x18]
call fcn.00420150
mov eax, dword [esi + 8]
push eax
call fcn.00563d80
add esp, 4
mov dword [esi + 0x1c], eax
test eax, eax
je 0x52c1e0
pop edi
mov ecx, esi
pop esi
pop ebp
pop ebx
add esp, 0x1c
jmp 0x52bf70