Function at 0x1003ad52
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x2c
mov edx, dword [esp + 0x40]
cmp dword [edx], 0x464c457f
je 0x1003ad72
mov dword [esp + 0xc], 0
jmp 0x1003b04e
cmp word [edx + 0x30], 0
mov dword [esp + 0xc], 0
je 0x1003b04e
mov esi, dword [edx + 0x20]
mov al, byte [0x10209da8]
lea ebx, [edx + 0x10]
lea ecx, [edx + 4]
xor edi, edi
mov dword [esp + 0xc], 0
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], ecx
add esi, edx
mov byte [esp + 0xb], al
mov dword [esp + 0x1c], esi
lea eax, [edi + edi*4]
mov ecx, dword [esi + eax*8 + 4]
cmp ecx, 1
je 0x1003b026
cmp ecx, 9
je 0x1003aee6
cmp ecx, 4
jne 0x1003b041
mov ecx, dword [esi + eax*8 + 0x24]
cmp ecx, dword [esi + eax*8 + 0x14]
ja 0x1003b041
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x20]
lea ecx, [esi + eax*8 + 0x14]
xor ebx, ebx
mov dword [esp + 4], ecx
mov eax, dword [ecx + 8]
mov ebp, dword [ecx - 4]
mov ecx, dword [esp + 0x40]
mov edx, ecx
mov ecx, dword [ecx + 0x20]
lea eax, [eax + eax*4]
mov dword [esp], ebp
add ecx, edx
mov esi, dword [ecx + eax*8 + 0x10]
mov eax, 0
add esi, edx
mov edx, dword [edi + ebp - 8]
add esi, dword [edi + ebp - 0x10]
mov ebp, dword [edi + ebp - 4]
test ebp, ebp
je 0x1003ae92
mov eax, dword [esp + 4]
mov dword [esp + 0x24], edx
mov eax, dword [eax + 4]
test eax, eax
je 0x1003aec6
mov dword [esp + 0x18], ebx
lea ebx, [eax + eax*4]
xor edx, edx
mov eax, dword [ecx + ebx*8 + 0x14]
mov dword [esp + 0x14], ebx
div dword [ecx + ebx*8 + 0x24]
mov ebx, dword [esp + 0x18]
cmp eax, ebp
jbe 0x1003aec6
mov eax, dword [esp + 0x14]
lea edx, [ebp + ebp*2]
mov dword [esp + 0x14], edx
mov eax, dword [ecx + eax*8 + 0x10]
add eax, dword [esp + 0x40]
movzx ebp, word [eax + edx*8 + 6]
lea edx, [ebp - 1]
movzx edx, dx
cmp edx, 0xfefe
ja 0x1003aec6
lea edx, [ebp + ebp*4]
mov ebp, dword [esp + 0x14]
mov eax, dword [eax + ebp*8 + 8]
add eax, dword [esp + 0x40]
add eax, dword [ecx + edx*8 + 0x10]
mov edx, dword [esp + 0x24]
cmp edx, 0xb
je 0x1003aebc
cmp edx, 2
je 0x1003aeba
cmp edx, 1
jne 0x1003aec6
mov ecx, eax
mov edx, dword [esp]
sar ecx, 0x1f
add eax, dword [esi]
adc ecx, dword [esi + 4]
add eax, dword [edi + edx]
adc ecx, dword [edi + edx + 4]
mov dword [esi + 4], ecx
jmp 0x1003aec4
sub eax, esi
add eax, dword [esi]
mov ecx, dword [esp]
add eax, dword [edi + ecx]
mov dword [esi], eax
mov ecx, dword [esp + 4]
xor edx, edx
inc ebx
add edi, 0x18
mov eax, dword [ecx]
div dword [ecx + 0x10]
cmp ebx, eax
jb 0x1003adf1
mov edx, dword [esp + 0x40]
jmp 0x1003b01c
mov ecx, dword [esi + eax*8 + 0x24]
cmp ecx, dword [esi + eax*8 + 0x14]
ja 0x1003b041
lea esi, [esi + eax*8 + 0x14]
xor ebx, ebx
mov dword [esp + 0x10], edi
mov eax, dword [esi + 8]
mov ebp, dword [edx + 0x20]
add ebp, edx
lea eax, [eax + eax*4]
mov eax, dword [ebp + eax*8 + 0x10]
add eax, edx
mov dword [esp + 4], eax
mov eax, dword [esi - 4]
add eax, dword [esp + 0x28]
mov ecx, dword [eax + ebx*8 - 4]
mov edx, dword [eax + ebx*8]
mov eax, 0
mov dword [esp], ecx
mov ecx, edx
shr ecx, 8
je 0x1003af89
mov eax, dword [esi + 4]
mov dword [esp + 0x18], edx
test eax, eax
je 0x1003b008
lea edi, [eax + eax*4]
xor edx, edx
mov eax, dword [ebp + edi*8 + 0x14]
div dword [ebp + edi*8 + 0x24]
cmp ecx, eax
jae 0x1003b008
mov eax, dword [ebp + edi*8 + 0x10]
shl ecx, 4
add eax, dword [esp + 0x40]
movzx edx, word [ecx + eax + 0xe]
lea edi, [edx - 1]
movzx edi, di
cmp edi, 0xfefe
ja 0x1003b008
mov eax, dword [eax + ecx + 4]
lea ecx, [edx + edx*4]
mov edx, dword [esp + 0x18]
add eax, dword [esp + 0x40]
add eax, dword [ebp + ecx*8 + 0x10]
cmp byte [esp + 0xb], 0
je 0x1003afc6
cmp dl, 0x2c
je 0x1003afd7
cmp dl, 0x2b
jne 0x1003b008
mov edi, dword [esp + 4]
mov ebp, dword [esp]
mov edx, 0xfff0f000
mov ecx, dword [ebp + edi]
and ecx, edx
mov edx, eax
and eax, 0xfff
shl edx, 4
and edx, 0xf0000
or eax, edx
or eax, ecx
mov dword [ebp + edi], eax
jmp 0x1003b008
cmp dl, 1
jne 0x1003b008
mov ecx, dword [esp + 4]
mov edx, dword [esp]
add dword [edx + ecx], eax
jmp 0x1003b008
mov ebp, dword [esp]
mov edx, dword [esp + 4]
mov ecx, eax
shr eax, 0xc
mov edi, 0xfff0f000
shr ecx, 0x10
and eax, 0xf0000
and ecx, 0xfff
or ecx, eax
mov eax, dword [esp + 4]
mov edx, dword [ebp + edx]
and edx, edi
or ecx, edx
mov dword [ebp + eax], ecx
mov eax, dword [esi]
xor edx, edx
inc ebx
div dword [esi + 0x10]
mov edx, dword [esp + 0x40]
cmp ebx, eax
jb 0x1003aefe
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
jmp 0x1003b041
test byte [esi + eax*8 + 8], 4
je 0x1003b041
mov ecx, dword [esi + eax*8 + 0x10]
mov eax, dword [esi + eax*8 + 0x14]
mov ebx, dword [esp + 0x44]
add ecx, edx
mov dword [ebx], eax
mov dword [esp + 0xc], ecx
movzx eax, word [edx + 0x30]
inc edi
cmp edi, eax
jb 0x1003adaf
mov eax, dword [esp + 0xc]
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret