Function at 0x10073950
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x18
push ebx
mov ebx, dword [ecx + 0x30]
push ebp
mov ebp, dword [ecx + 4]
push esi
push edi
mov edi, edx
mov dword [esp + 0x18], ebp
lea esi, [ebx + ebp]
mov dword [esp + 0x1c], ebx
mov ecx, esi
call fcn.10073200
movzx eax, ax
mov dword [esp + 0x10], eax
test ax, ax
jne 0x100739a0
lea ecx, [esi + 2]
call fcn.10073200
movzx eax, ax
sub eax, 6
cmp edi, eax
jge 0x10073bdb
movzx eax, byte [esi + edi + 6]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
cmp eax, 6
jne 0x100739ef
lea ecx, [esi + 6]
call fcn.10073200
movzx eax, ax
mov dword [esp + 0x1c], eax
cmp edi, eax
jb 0x10073bdb
lea ecx, [esi + 8]
call fcn.10073200
mov ecx, dword [esp + 0x1c]
movzx eax, ax
add eax, ecx
cmp edi, eax
jae 0x10073bdb
sub edi, ecx
lea ecx, [ebx + 0xa]
lea ecx, [ecx + edi*2]
add ecx, ebp
call fcn.10073200
pop edi
pop esi
pop ebp
movzx eax, ax
pop ebx
add esp, 0x18
ret
cmp eax, 2
je 0x10073bdb
cmp eax, 4
jne 0x10073b78
lea ecx, [esi + 6]
call fcn.10073200
shr ax, 1
lea ecx, [esi + 8]
movzx eax, ax
mov dword [esp + 0x18], eax
call fcn.10073200
shr ax, 1
lea ecx, [esi + 0xa]
movzx eax, ax
mov dword [esp + 0x10], eax
call fcn.10073200
add ebx, 0xe
movzx eax, ax
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], ebx
cmp edi, 0xffff
jg 0x10073bdb
lea ecx, [esi + 0xc]
call fcn.10073200
movzx eax, ax
shr eax, 1
lea esi, [ebx + eax*2]
lea ecx, [esi + ebp]
call fcn.10073200
movzx eax, ax
cmp edi, eax
cmovge ebx, esi
sub ebx, 2
cmp word [esp + 0x14], 0
je 0x10073ab5
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.10073200
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 0x10073a80
sub ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
add ebx, 2
shr ebx, 1
movzx ecx, ax
add ecx, 8
movzx esi, bx
mov ebx, dword [esp + 0x1c]
add ecx, esi
mov dword [esp + 0x14], esi
lea ecx, [ebx + ecx*2]
add ecx, ebp
call fcn.10073200
movzx eax, ax
mov dword [esp + 0x20], eax
cmp edi, eax
jl 0x10073bdb
lea eax, [ebx + 0xe]
lea ecx, [eax + esi*2]
add ecx, ebp
call fcn.10073200
movzx eax, ax
cmp edi, eax
jg 0x10073bdb
mov ecx, dword [esp + 0x18]
movzx eax, cx
mov ecx, dword [esp + 0x14]
add ecx, 8
lea esi, [eax + eax*2]
add ecx, esi
lea ecx, [ebx + ecx*2]
add ecx, ebp
call fcn.10073200
movzx eax, ax
test ax, ax
jne 0x10073b54
mov edx, dword [esp + 0x18]
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.10073220
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.10073200
pop edi
pop esi
pop ebp
movzx eax, ax
pop ebx
add esp, 0x18
ret
cmp eax, 0xc
je 0x10073b82
cmp eax, 0xd
jne 0x10073bdb
lea ecx, [esi + 0xc]
xor ebx, ebx
call fcn.10073240
mov ebp, eax
test ebp, ebp
jle 0x10073bdb
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 + 0x1c]
add eax, dword [esp + 0x18]
mov dword [esp + 0x20], eax
lea ecx, [eax + 0x10]
call fcn.10073240
mov dword [esp + 0x24], eax
cmp edi, eax
jae 0x10073bc4
mov ebp, esi
jmp 0x10073bd7
mov ecx, dword [esp + 0x20]
add ecx, 0x14
call fcn.10073240
cmp edi, eax
jbe 0x10073be5
lea ebx, [esi + 1]
cmp ebx, ebp
jl 0x10073b92
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
add eax, dword [esp + 0x1c]
add ecx, 0x18
add ecx, eax
call fcn.10073240
cmp word [esp + 0x10], 0xc
jne 0x10073bdd
sub eax, dword [esp + 0x24]
add eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret