Function at 0x10095420
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 0x20]
push edi
mov edi, ecx
mov esi, dword [esi]
mov dword [ebx], 0
cmp eax, 9
ja case.0x10095442.8
jmp dword [eax*4 + 0x10095948]
mov ebx, dword [ebp + 0x1c]
cmp dword [esi + ebx + 0x10], 0x524d46
jne case.0x10095442.8
mov al, byte [esi + ebx + 0x14]
mov edx, dword [ebp + 0x18]
mov cl, al
shl al, 2
add cl, al
add cl, cl
add cl, 0x20
mov byte [edx], cl
movzx eax, byte [esi + ebx + 0x15]
mov ecx, dword [ebp + 0x14]
sub al, 0x30
add byte [edx], al
movzx eax, byte [esi + ebx + 0x16]
sub al, 0x30
mov byte [edx + 1], al
movzx eax, byte [esi + ebx + 0x18]
shl eax, 8
mov dword [ecx], eax
movzx eax, byte [esi + ebx + 0x19]
add dword [ecx], eax
add dword [ecx], 0x10
movzx eax, byte [esi + ebx + 0x1a]
shr al, 4
mov byte [edi], al
movzx eax, byte [esi + ebx + 0x1a]
and al, 0xf
movzx eax, al
shl ax, 8
mov word [edi + 2], ax
movzx eax, byte [esi + ebx + 0x1b]
add word [edi + 2], ax
movzx edx, byte [esi + ebx + 0x1d]
movzx ecx, byte [esi + ebx + 0x1c]
mov ebx, 0x100
movsx ecx, cx
movsx eax, bx
imul ecx, eax
mov eax, dword [ebp + 0x1c]
add dx, cx
mov word [edi + 8], dx
movzx edx, byte [esi + eax + 0x1f]
movzx ecx, byte [esi + eax + 0x1e]
movsx ecx, cx
movsx eax, bx
imul ecx, eax
mov eax, dword [ebp + 0x1c]
add dx, cx
mov word [edi + 0xa], dx
movzx edx, byte [esi + eax + 0x21]
movzx ecx, byte [esi + eax + 0x20]
movsx ecx, cx
movsx eax, bx
imul ecx, eax
mov eax, dword [ebp + 0x1c]
add dx, cx
mov word [edi + 4], dx
movzx ecx, byte [esi + eax + 0x22]
movzx edx, byte [esi + eax + 0x23]
movsx ecx, cx
movsx eax, bx
imul ecx, eax
mov eax, dword [ebp + 0x1c]
add dx, cx
mov word [edi + 6], dx
movzx ecx, byte [esi + eax + 0x24]
mov eax, dword [ebp + 0xc]
inc ecx
add esi, 0x26
mov dword [eax], ecx
jmp 0x10095915
mov ebx, dword [ebp + 0x1c]
cmp dword [esi + ebx], 0x524d46
jne case.0x10095442.8
mov edx, dword [ebp + 0x18]
mov byte [edx], 0
mov cl, byte [esi + ebx + 4]
cmp cl, 0x20
je 0x10095576
mov al, cl
shl cl, 2
add al, cl
add al, al
add al, 0x20
mov byte [edx], al
movzx eax, byte [esi + ebx + 5]
sub al, 0x30
add byte [edx], al
movzx eax, byte [esi + ebx + 6]
sub al, 0x30
mov byte [edx + 1], al
movzx eax, byte [esi + ebx + 8]
mov edx, dword [ebp + 0x14]
shl eax, 8
mov dword [edx], eax
movzx eax, byte [esi + ebx + 9]
add esi, 0xa
add dword [edx], eax
cmp dword [edx], 0
jne 0x100955cc
movzx eax, byte [esi + ebx]
movzx ecx, byte [esi + ebx + 1]
shl eax, 8
add ecx, eax
movzx eax, byte [esi + ebx + 2]
shl ecx, 8
add ecx, eax
movzx eax, byte [esi + ebx + 3]
shl ecx, 8
add ecx, eax
add esi, 4
mov dword [edx], ecx
movzx eax, byte [esi + ebx + 4]
shr al, 4
mov byte [edi], al
movzx eax, byte [esi + ebx + 4]
and al, 0xf
movzx eax, al
shl ax, 8
mov word [edi + 2], ax
movzx eax, byte [esi + ebx + 5]
add word [edi + 2], ax
mov eax, 0x100
movzx ecx, byte [esi + ebx + 6]
movzx edx, byte [esi + ebx + 7]
movsx ecx, cx
cwde
imul ecx, eax
mov eax, 0x100
cwde
add dx, cx
mov word [edi + 8], dx
movzx ecx, byte [esi + ebx + 8]
movzx edx, byte [esi + ebx + 9]
movsx ecx, cx
imul ecx, eax
mov eax, 0x100
cwde
add dx, cx
mov word [edi + 0xa], dx
movzx ecx, byte [esi + ebx + 0xa]
movzx edx, byte [esi + ebx + 0xb]
movsx ecx, cx
imul ecx, eax
mov eax, 0x100
cwde
add dx, cx
mov word [edi + 4], dx
movzx ecx, byte [esi + ebx + 0xc]
movzx edx, byte [esi + ebx + 0xd]
movsx ecx, cx
imul ecx, eax
mov eax, dword [ebp + 0xc]
add dx, cx
mov word [edi + 6], dx
movzx ecx, byte [esi + ebx + 0xe]
add esi, 0x10
mov dword [eax], ecx
jmp 0x10095915
mov ebx, dword [ebp + 0x1c]
cmp dword [esi + ebx], 0x524d46
jne case.0x10095442.8
cmp dword [esi + ebx + 4], 0x303220
jne case.0x10095442.8
mov edx, dword [ebp + 0x18]
mov byte [edx], 0
mov cl, byte [esi + ebx + 4]
cmp cl, 0x20
je 0x100956b1
mov al, cl
shl cl, 2
add al, cl
add al, al
add al, 0x20
mov byte [edx], al
movzx eax, byte [esi + ebx + 5]
mov ecx, dword [ebp + 0x14]
sub al, 0x30
add byte [edx], al
movzx eax, byte [esi + ebx + 6]
sub al, 0x30
mov byte [edx + 1], al
movzx eax, byte [esi + ebx + 8]
shl eax, 0x18
mov dword [ecx], eax
movzx eax, byte [esi + ebx + 9]
shl eax, 0x10
add dword [ecx], eax
movzx eax, byte [esi + ebx + 0xa]
shl eax, 8
add dword [ecx], eax
movzx eax, byte [esi + ebx + 0xb]
add dword [ecx], eax
movzx eax, byte [esi + ebx + 0xc]
shr al, 4
mov byte [edi], al
movzx eax, byte [esi + ebx + 0xc]
and al, 0xf
movzx eax, al
shl ax, 8
mov word [edi + 2], ax
movzx eax, byte [esi + ebx + 0xd]
add word [edi + 2], ax
mov eax, 0x100
movzx ecx, byte [esi + ebx + 0xe]
movzx edx, byte [esi + ebx + 0xf]
movsx ecx, cx
cwde
imul ecx, eax
mov eax, 0x100
cwde
add dx, cx
mov word [edi + 8], dx
movzx ecx, byte [esi + ebx + 0x10]
movzx edx, byte [esi + ebx + 0x11]
movsx ecx, cx
imul ecx, eax
mov eax, 0x100
cwde
add dx, cx
mov word [edi + 0xa], dx
movzx ecx, byte [esi + ebx + 0x12]
movzx edx, byte [esi + ebx + 0x13]
movsx ecx, cx
imul ecx, eax
mov eax, 0x100
cwde
add dx, cx
mov word [edi + 4], dx
movzx ecx, byte [esi + ebx + 0x14]
movzx edx, byte [esi + ebx + 0x15]
movsx ecx, cx
imul ecx, eax
mov eax, dword [ebp + 0xc]
add dx, cx
mov word [edi + 6], dx
movzx ecx, byte [esi + ebx + 0x16]
mov dword [eax], ecx
jmp 0x10095912
mov edx, dword [ebp + 0x1c]
cmp dword [esi + edx], 0x524d46
jne case.0x10095442.8
cmp dword [esi + edx + 4], 0x303330
jne case.0x10095442.8
mov ebx, dword [ebp + 0x18]
mov byte [ebx], 0
mov cl, byte [esi + edx + 4]
cmp cl, 0x20
je 0x100957ce
mov al, cl
shl cl, 2
add al, cl
add al, al
add al, 0x20
mov byte [ebx], al
movzx eax, byte [esi + edx + 5]
mov ecx, dword [ebp + 0x14]
sub al, 0x30
add byte [ebx], al
movzx eax, byte [esi + edx + 6]
sub al, 0x30
mov byte [ebx + 1], al
movzx eax, byte [esi + edx + 8]
shl eax, 0x18
mov dword [ecx], eax
movzx eax, byte [esi + edx + 9]
shl eax, 0x10
add dword [ecx], eax
movzx eax, byte [esi + edx + 0xa]
shl eax, 8
add dword [ecx], eax
movzx eax, byte [esi + edx + 0xb]
add dword [ecx], eax
movzx eax, byte [esi + edx + 0xc]
movzx ecx, byte [esi + edx + 0xd]
shl eax, 8
add ecx, eax
mov eax, dword [ebp + 0xc]
mov dword [eax], ecx
movzx eax, byte [esi + edx + 0xe]
add esi, 0xf
mov byte [edi + 0xc], al
jmp 0x10095915
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
movzx eax, byte [esi + edx + 4]
sub al, 0x30
mov byte [ecx], al
movzx eax, byte [esi + edx + 5]
sub al, 0x30
mov byte [ecx + 1], al
movzx eax, byte [esi + edx + 6]
movzx ecx, byte [esi + edx + 7]
shl eax, 8
add ecx, eax
movzx eax, byte [esi + edx + 8]
shl ecx, 8
add ecx, eax
movzx eax, byte [esi + edx + 9]
shl ecx, 8
add ecx, eax
mov eax, dword [ebp + 0x14]
mov dword [eax], ecx
js case.0x10095442.8
movzx ecx, byte [esi + edx + 0xa]
mov eax, dword [ebp + 0xc]
mov dword [eax], ecx
movzx eax, byte [esi + edx + 0xb]
mov dword [ebx], eax
mov ebx, 0x100
mov al, byte [esi + edx + 0xc]
mov byte [edi], al
movzx ecx, byte [esi + edx + 0xf]
movsx ecx, cx
movsx eax, bx
imul ecx, eax
movzx eax, byte [esi + edx + 0xe]
add cx, ax
movsx eax, bx
mov word [edi + 2], cx
movzx ecx, byte [esi + edx + 0x11]
movsx ecx, cx
imul ecx, eax
movzx eax, byte [esi + edx + 0x10]
add cx, ax
movsx eax, bx
mov word [edi + 4], cx
movzx ecx, byte [esi + edx + 0x13]
movsx ecx, cx
imul ecx, eax
movzx eax, byte [esi + edx + 0x12]
add cx, ax
movsx eax, bx
mov word [edi + 6], cx
movzx ecx, byte [esi + edx + 0x15]
movsx ecx, cx
imul ecx, eax
movzx eax, byte [esi + edx + 0x14]
add cx, ax
movsx eax, bx
mov word [edi + 8], cx
movzx ecx, byte [esi + edx + 0x17]
movsx ecx, cx
imul ecx, eax
movzx eax, byte [esi + edx + 0x16]
add cx, ax
mov word [edi + 0xa], cx
add esi, 0x18
mov eax, 0xbb8
cmp word [edi + 8], ax
jle 0x10095924
mov word [edi + 8], ax
cmp word [edi + 0xa], ax
jle 0x1009592e
mov word [edi + 0xa], ax
mov eax, dword [ebp + 0x20]
pop edi
mov dword [eax], esi
xor eax, eax
pop esi
pop ebx
pop ebp
ret 0x1c
pop edi
pop esi
or eax, 0xffffffff
pop ebx
pop ebp
ret 0x1c