Function at 0x10067f80
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x18
push ebx
mov ebx, dword [ecx + 0x2c]
push ebp
mov ebp, dword [ecx + 4]
push esi
push edi
mov edi, edx
mov dword [esp + 0x1c], ebp
lea esi, [ebx + ebp]
mov dword [esp + 0x18], ebx
mov ecx, esi
call fcn.100678a0
movzx eax, ax
mov dword [esp + 0x10], eax
test ax, ax
jne 0x10067fd0
lea ecx, [esi + 2]
call fcn.100678a0
movzx eax, ax
sub eax, 6
cmp edi, eax
jge 0x100681ec
movzx eax, byte [esi + edi + 6]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
cmp eax, 6
jne 0x1006801f
lea ecx, [esi + 6]
call fcn.100678a0
movzx eax, ax
mov dword [esp + 0x1c], eax
cmp edi, eax
jb 0x100681ec
lea ecx, [esi + 8]
call fcn.100678a0
mov ecx, dword [esp + 0x1c]
movzx eax, ax
add eax, ecx
cmp edi, eax
jae 0x100681ec
sub edi, ecx
lea ecx, [ebx + 0xa]
lea ecx, [ecx + edi*2]
add ecx, ebp
call fcn.100678a0
pop edi
pop esi
pop ebp
movzx eax, ax
pop ebx
add esp, 0x18
ret
cmp eax, 2
je 0x100681ec
cmp eax, 4
jne 0x10068189
lea ecx, [esi + 6]
call fcn.100678a0
shr ax, 1
lea ecx, [esi + 8]
movzx eax, ax
mov dword [esp + 0x1c], eax
call fcn.100678a0
shr ax, 1
lea ecx, [esi + 0xa]
movzx eax, ax
mov dword [esp + 0x10], eax
call fcn.100678a0
add ebx, 0xe
movzx eax, ax
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], ebx
cmp edi, 0xffff
jg 0x100681ec
lea ecx, [esi + 0xc]
call fcn.100678a0
movzx eax, ax
shr eax, 1
lea esi, [ebx + eax*2]
lea ecx, [esi + ebp]
call fcn.100678a0
movzx eax, ax
cmp edi, eax
cmovge ebx, esi
sub ebx, 2
cmp word [esp + 0x14], 0
je 0x100680e5
mov ax, word [esp + 0x10]
nop word [eax + eax]
shr ax, 1
mov word [esp + 0x10], ax
movzx eax, ax
lea esi, [ebx + eax*2]
lea ecx, [esi + ebp]
call fcn.100678a0
movzx eax, ax
cmp edi, eax
mov eax, dword [esp + 0x14]
cmovg ebx, esi
add eax, 0xffff
mov dword [esp + 0x14], eax
test ax, ax
mov ax, word [esp + 0x10]
jne 0x100680b0
sub ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
add ebx, 2
movzx esi, cx
shr ebx, 1
movzx eax, bx
mov ebx, dword [esp + 0x18]
lea ecx, [esi + 8]
mov dword [esp + 0x14], eax
add ecx, eax
lea ecx, [ebx + ecx*2]
add ecx, ebp
call fcn.100678a0
movzx eax, ax
mov dword [esp + 0x20], eax
cmp edi, eax
jl 0x100681ec
mov ecx, dword [esp + 0x14]
lea esi, [esi + esi*2]
add ecx, 8
add ecx, esi
lea ecx, [ebx + ecx*2]
add ecx, ebp
call fcn.100678a0
movzx eax, ax
test ax, ax
jne 0x10068165
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
movzx ecx, dx
lea eax, [eax + ecx*2]
lea eax, [eax + 8]
lea ecx, [ebx + eax*2]
add ecx, ebp
call fcn.100678c0
add ax, di
pop edi
pop esi
pop ebp
movzx eax, ax
pop ebx
add esp, 0x18
ret
sub esi, dword [esp + 0x20]
lea ecx, [edi + 8]
add esi, dword [esp + 0x14]
add eax, ebx
add ecx, esi
lea ecx, [eax + ecx*2]
add ecx, ebp
call fcn.100678a0
pop edi
pop esi
pop ebp
movzx eax, ax
pop ebx
add esp, 0x18
ret
cmp eax, 0xc
je 0x10068193
cmp eax, 0xd
jne 0x100681ec
lea ecx, [esi + 0xc]
xor ebx, ebx
call fcn.100678e0
mov ebp, eax
test ebp, ebp
jle 0x100681ec
mov esi, ebp
sub esi, ebx
sar esi, 1
add esi, ebx
lea eax, [esi + esi*2]
shl eax, 2
mov dword [esp + 0x14], eax
add eax, dword [esp + 0x18]
add eax, dword [esp + 0x1c]
mov dword [esp + 0x20], eax
lea ecx, [eax + 0x10]
call fcn.100678e0
mov dword [esp + 0x24], eax
cmp edi, eax
jae 0x100681d5
mov ebp, esi
jmp 0x100681e8
mov ecx, dword [esp + 0x20]
add ecx, 0x14
call fcn.100678e0
cmp edi, eax
jbe 0x100681f6
lea ebx, [esi + 1]
cmp ebx, ebp
jl 0x100681a3
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
add eax, dword [esp + 0x18]
add ecx, 0x18
add ecx, eax
call fcn.100678e0
cmp word [esp + 0x10], 0xc
jne 0x100681ee
sub eax, dword [esp + 0x24]
add eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret