Function at 0x474fa8
Capabilities:
Enumerate pe sections

Disassembly:
push edi
push ebp
push esi
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ecx, edx
shr ecx, 0x10
movzx ebp, dx
cmp edi, 1
jne 0x474ff2
movzx eax, byte [eax]
add ebp, eax
cmp ebp, 0xfff1
jb 0x474fd7
add ebp, 0xffff000f
add ecx, ebp
cmp ecx, 0xfff1
jb 0x474fe7
add ecx, 0xffff000f
shl ecx, 0x10
or ebp, ecx
mov eax, ebp
pop ecx
pop ebp
pop edi
ret
test eax, eax
je 0x47523d
cmp edi, 0x10
jae 0x47504e
lea edx, [edi - 1]
test edi, edi
je 0x475018
movzx edi, byte [eax]
add ebp, edi
add ecx, ebp
add edx, 0xffffffff
add eax, 1
cmp edx, 0xffffffff
jne 0x475006
cmp ebp, 0xfff1
jb 0x475026
add ebp, 0xffff000f
mov eax, 0x80078071
mul ecx
shr edx, 0xf
mov edi, edx
shl edi, 0xc
sub edi, edx
add edi, edi
add edi, edi
add edi, edi
add edi, edi
add edx, edi
sub ecx, edx
shl ecx, 0x10
or ebp, ecx
mov eax, ebp
pop ecx
pop ebp
pop edi
ret
cmp edi, 0x15b0
jb 0x475140
mov dword [esp], esi
mov esi, eax
add edi, 0xffffea50
mov edx, 0x15b
movzx eax, byte [esi]
add ebp, eax
movzx eax, byte [esi + 1]
add ecx, ebp
add ebp, eax
movzx eax, byte [esi + 2]
add ecx, ebp
add ebp, eax
movzx eax, byte [esi + 3]
add ecx, ebp
add ebp, eax
movzx eax, byte [esi + 4]
add ecx, ebp
add ebp, eax
movzx eax, byte [esi + 5]
add ecx, ebp
add ebp, eax
movzx eax, byte [esi + 6]
add ecx, ebp
add ebp, eax
movzx eax, byte [esi + 7]
add ecx, ebp
add ebp, eax
movzx eax, byte [esi + 8]
add ecx, ebp
add ebp, eax
movzx eax, byte [esi + 9]
add ecx, ebp
add ebp, eax
movzx eax, byte [esi + 0xa]
add ecx, ebp
add ebp, eax
movzx eax, byte [esi + 0xb]
add ecx, ebp
add ebp, eax
movzx eax, byte [esi + 0xc]
add ecx, ebp
add ebp, eax
movzx eax, byte [esi + 0xd]
add ecx, ebp
add ebp, eax
movzx eax, byte [esi + 0xe]
add ecx, ebp
add ebp, eax
movzx eax, byte [esi + 0xf]
add ecx, ebp
add ebp, eax
add ecx, ebp
add esi, 0x10
add edx, 0xffffffff
jne 0x47506a
mov eax, 0x80078071
mul ebp
shr edx, 0xf
mov eax, edx
shl eax, 0xc
sub eax, edx
add eax, eax
add eax, eax
add eax, eax
add eax, eax
add edx, eax
sub ebp, edx
mov eax, 0x80078071
mul ecx
shr edx, 0xf
mov eax, edx
shl eax, 0xc
sub eax, edx
add eax, eax
add eax, eax
add eax, eax
add eax, eax
add edx, eax
sub ecx, edx
cmp edi, 0x15b0
jae 0x47505f
mov eax, esi
mov esi, dword [esp]
test edi, edi
je 0x475232
cmp edi, 0x10
jb 0x4751df
movzx edx, byte [eax]
add edi, 0xfffffff0
add ebp, edx
movzx edx, byte [eax + 1]
add ecx, ebp
add ebp, edx
movzx edx, byte [eax + 2]
add ecx, ebp
add ebp, edx
movzx edx, byte [eax + 3]
add ecx, ebp
add ebp, edx
movzx edx, byte [eax + 4]
add ecx, ebp
add ebp, edx
movzx edx, byte [eax + 5]
add ecx, ebp
add ebp, edx
movzx edx, byte [eax + 6]
add ecx, ebp
add ebp, edx
movzx edx, byte [eax + 7]
add ecx, ebp
add ebp, edx
movzx edx, byte [eax + 8]
add ecx, ebp
add ebp, edx
movzx edx, byte [eax + 9]
add ecx, ebp
add ebp, edx
movzx edx, byte [eax + 0xa]
add ecx, ebp
add ebp, edx
movzx edx, byte [eax + 0xb]
add ecx, ebp
add ebp, edx
movzx edx, byte [eax + 0xc]
add ecx, ebp
add ebp, edx
movzx edx, byte [eax + 0xd]
add ecx, ebp
add ebp, edx
movzx edx, byte [eax + 0xe]
add ecx, ebp
add ebp, edx
movzx edx, byte [eax + 0xf]
add ecx, ebp
add ebp, edx
add ecx, ebp
add eax, 0x10
cmp edi, 0x10
jae 0x475151
lea edx, [edi - 1]
test edi, edi
je 0x4751f8
movzx edi, byte [eax]
add ebp, edi
add ecx, ebp
add edx, 0xffffffff
add eax, 1
cmp edx, 0xffffffff
jne 0x4751e6
mov eax, 0x80078071
mul ebp
mov eax, 0x80078071
shr edx, 0xf
mov edi, edx
shl edi, 0xc
sub edi, edx
add edi, edi
add edi, edi
add edi, edi
add edi, edi
add edx, edi
sub ebp, edx
mul ecx
shr edx, 0xf
mov edi, edx
shl edi, 0xc
sub edi, edx
add edi, edi
add edi, edi
add edi, edi
add edi, edi
add edx, edi
sub ecx, edx
shl ecx, 0x10
or ebp, ecx
mov eax, ebp
pop ecx
pop ebp
pop edi
ret
mov eax, 1
pop ecx
pop ebp
pop edi
ret