Function at 0x410968
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 0x4109b2
movzx eax, byte [eax]
add ebp, eax
cmp ebp, 0xfff1
jb 0x410997
add ebp, 0xffff000f
add ecx, ebp
cmp ecx, 0xfff1
jb 0x4109a7
add ecx, 0xffff000f
shl ecx, 0x10
or ebp, ecx
mov eax, ebp
pop ecx
pop ebp
pop edi
ret
test eax, eax
je 0x410bfd
cmp edi, 0x10
jae 0x410a0e
lea edx, [edi - 1]
test edi, edi
je 0x4109d8
movzx edi, byte [eax]
add ebp, edi
add ecx, ebp
add edx, 0xffffffff
add eax, 1
cmp edx, 0xffffffff
jne 0x4109c6
cmp ebp, 0xfff1
jb 0x4109e6
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 0x410b00
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 0x410a2a
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 0x410a1f
mov eax, esi
mov esi, dword [esp]
test edi, edi
je 0x410bf2
cmp edi, 0x10
jb 0x410b9f
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 0x410b11
lea edx, [edi - 1]
test edi, edi
je 0x410bb8
movzx edi, byte [eax]
add ebp, edi
add ecx, ebp
add edx, 0xffffffff
add eax, 1
cmp edx, 0xffffffff
jne 0x410ba6
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