Function at 0x10068170
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.10067a90
movzx eax, ax
mov dword [esp + 0x10], eax
test ax, ax
jne 0x100681c0
lea ecx, [esi + 2]
call fcn.10067a90
movzx eax, ax
sub eax, 6
cmp edi, eax
jge 0x100683dc
movzx eax, byte [esi + edi + 6]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
cmp eax, 6
jne 0x1006820f
lea ecx, [esi + 6]
call fcn.10067a90
movzx eax, ax
mov dword [esp + 0x1c], eax
cmp edi, eax
jb 0x100683dc
lea ecx, [esi + 8]
call fcn.10067a90
mov ecx, dword [esp + 0x1c]
movzx eax, ax
add eax, ecx
cmp edi, eax
jae 0x100683dc
sub edi, ecx
lea ecx, [ebx + 0xa]
lea ecx, [ecx + edi*2]
add ecx, ebp
call fcn.10067a90
pop edi
pop esi
pop ebp
movzx eax, ax
pop ebx
add esp, 0x18
ret
cmp eax, 2
je 0x100683dc
cmp eax, 4
jne 0x10068379
lea ecx, [esi + 6]
call fcn.10067a90
shr ax, 1
lea ecx, [esi + 8]
movzx eax, ax
mov dword [esp + 0x1c], eax
call fcn.10067a90
shr ax, 1
lea ecx, [esi + 0xa]
movzx eax, ax
mov dword [esp + 0x10], eax
call fcn.10067a90
add ebx, 0xe
movzx eax, ax
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], ebx
cmp edi, 0xffff
jg 0x100683dc
lea ecx, [esi + 0xc]
call fcn.10067a90
movzx eax, ax
shr eax, 1
lea esi, [ebx + eax*2]
lea ecx, [esi + ebp]
call fcn.10067a90
movzx eax, ax
cmp edi, eax
cmovge ebx, esi
sub ebx, 2
cmp word [esp + 0x14], 0
je 0x100682d5
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.10067a90
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 0x100682a0
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.10067a90
movzx eax, ax
mov dword [esp + 0x20], eax
cmp edi, eax
jl 0x100683dc
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.10067a90
movzx eax, ax
test ax, ax
jne 0x10068355
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.10067ab0
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.10067a90
pop edi
pop esi
pop ebp
movzx eax, ax
pop ebx
add esp, 0x18
ret
cmp eax, 0xc
je 0x10068383
cmp eax, 0xd
jne 0x100683dc
lea ecx, [esi + 0xc]
xor ebx, ebx
call fcn.10067ad0
mov ebp, eax
test ebp, ebp
jle 0x100683dc
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.10067ad0
mov dword [esp + 0x24], eax
cmp edi, eax
jae 0x100683c5
mov ebp, esi
jmp 0x100683d8
mov ecx, dword [esp + 0x20]
add ecx, 0x14
call fcn.10067ad0
cmp edi, eax
jbe 0x100683e6
lea ebx, [esi + 1]
cmp ebx, ebp
jl 0x10068393
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.10067ad0
cmp word [esp + 0x10], 0xc
jne 0x100683de
sub eax, dword [esp + 0x24]
add eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret