Function at 0x10055410
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x48
mov edx, dword [esp + 0x5c]
mov eax, 1
push ebx
push ebp
mov ebp, dword [esp + 0x54]
mov ebx, 0x20
sub ebx, dword [esp + 0x68]
push esi
push edi
mov edi, dword [esp + 0x74]
mov esi, dword [ebp]
mov dword [esp + 0x44], ebx
lea ecx, [edi - 1]
shl eax, cl
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x40], eax
mov dword [ecx], esi
test edx, edx
jne 0x10055480
mov eax, dword [esp + 0x64]
cmp eax, 1
jle 0x10055de3
cmp ebp, ecx
je 0x10055de3
lea eax, [eax*4 - 4]
push eax
lea eax, [ebp + 4]
push eax
lea eax, [ecx + 4]
push eax
call fcn.100a1aa0
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret
cmp edx, 0x1f
jne 0x100554b4
mov edi, dword [esp + 0x64]
cmp edi, 1
jle 0x10055de3
sub ebp, ecx
lea edx, [ecx + 4]
dec edi
add esi, dword [edx + ebp]
lea edx, [edx + 4]
mov ecx, ebx
shl esi, cl
sar esi, cl
mov dword [edx - 4], esi
sub edi, 1
jne 0x10055498
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret
cmp edx, 1
jl 0x100554e1
mov esi, dword [esp + 0x6c]
lea edx, [ecx + 4]
sub ebp, ecx
mov eax, dword [edx + ebp]
lea edx, [edx + 4]
add eax, dword [edx - 8]
mov ecx, ebx
shl eax, cl
sar eax, cl
mov dword [edx - 4], eax
sub esi, 1
jne 0x100554c2
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x6c]
lea ebx, [edx + 1]
mov dword [esp + 0x10], ebx
cmp edx, 4
jne 0x1005576a
mov ebx, dword [esp + 0x68]
mov esi, dword [esp + 0x64]
movzx eax, word [ebx + 2]
movzx edx, word [ebx]
movzx ebp, word [ebx + 6]
mov dword [esp + 0x18], eax
movzx eax, word [ebx + 4]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x74], eax
mov dword [esp + 0x14], ebp
cmp dword [esp + 0x10], esi
jge 0x1005574f
mov ebx, dword [esp + 0x10]
lea ebp, [ebx - 2]
mov edx, dword [ecx + ebp*4]
lea ebp, [ecx + ebp*4]
mov dword [esp + 0x24], ebp
jmp 0x10055539
mov edx, dword [esp + 0x70]
mov esi, dword [ecx]
lea eax, [ebp + 4]
mov dword [esp + 0x48], eax
mov ebp, esi
mov eax, dword [eax]
mov ecx, esi
sub ebp, eax
mov dword [esp + 0x34], eax
mov eax, esi
sub eax, edx
mov edx, esi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
sub edx, dword [eax - 8]
sub ecx, dword [eax - 4]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], ecx
mov eax, dword [eax + ebx*4]
mov dword [esp + 0x70], eax
neg dword [esp + 0x70]
shr dword [esp + 0x70], 0x1f
mov dword [esp + 0x4c], eax
sar eax, 0x1f
or dword [esp + 0x70], eax
mov eax, dword [esp + 0x14]
cwde
imul eax, edx
mov edx, dword [esp + 0x40]
sub edx, eax
mov eax, dword [esp + 0x74]
cwde
imul eax, ecx
mov ecx, edi
sub edx, eax
mov eax, dword [esp + 0x18]
cwde
imul eax, dword [esp + 0x28]
sub edx, eax
mov eax, dword [esp + 0x6c]
cwde
imul eax, ebp
sub edx, eax
mov eax, dword [esp + 0x24]
sar edx, cl
mov ecx, dword [esp + 0x44]
add edx, esi
mov esi, dword [esp + 0x4c]
add edx, esi
shl edx, cl
sar edx, cl
mov dword [eax + 8], edx
mov eax, dword [esp + 0x70]
test eax, eax
jle 0x1005567a
mov ecx, dword [esp + 0x3c]
mov edx, ecx
neg edx
mov eax, ecx
shr edx, 0x1f
sar eax, 0x1f
or edx, eax
sub dword [esp + 0x14], edx
imul edx, ecx
mov ecx, edi
sar edx, cl
sub esi, edx
test esi, esi
jle 0x10055719
mov ecx, dword [esp + 0x38]
mov edx, ecx
neg edx
mov eax, ecx
shr edx, 0x1f
sar eax, 0x1f
or edx, eax
mov eax, dword [esp + 0x74]
sub eax, edx
imul edx, ecx
mov ecx, edi
mov dword [esp + 0x74], eax
sar edx, cl
neg edx
lea esi, [esi + edx*2]
test esi, esi
jle 0x10055713
mov ecx, dword [esp + 0x28]
mov edx, ecx
neg edx
mov eax, ecx
shr edx, 0x1f
sar eax, 0x1f
or edx, eax
sub dword [esp + 0x18], edx
imul edx, ecx
mov ecx, edi
sar edx, cl
lea eax, [edx + edx*2]
mov edx, dword [esp + 0x6c]
sub esi, eax
test esi, esi
jle 0x1005571d
mov eax, ebp
sar ebp, 0x1f
neg eax
shr eax, 0x1f
or eax, ebp
sub edx, eax
mov dword [esp + 0x6c], edx
jmp 0x1005571d
jns 0x10055719
mov ecx, dword [esp + 0x3c]
mov edx, ecx
neg edx
mov eax, ecx
shr edx, 0x1f
sar eax, 0x1f
or edx, eax
neg edx
sub dword [esp + 0x14], edx
imul edx, ecx
mov ecx, edi
sar edx, cl
sub esi, edx
jns 0x10055719
mov ecx, dword [esp + 0x38]
mov edx, ecx
neg edx
mov eax, ecx
shr edx, 0x1f
sar eax, 0x1f
or edx, eax
mov eax, dword [esp + 0x74]
neg edx
sub eax, edx
imul edx, ecx
mov ecx, edi
mov dword [esp + 0x74], eax
sar edx, cl
neg edx
lea esi, [esi + edx*2]
test esi, esi
jns 0x10055713
mov ecx, dword [esp + 0x28]
mov edx, ecx
neg edx
mov eax, ecx
shr edx, 0x1f
sar eax, 0x1f
or edx, eax
neg edx
sub dword [esp + 0x18], edx
imul edx, ecx
mov ecx, edi
sar edx, cl
lea eax, [edx + edx*2]
mov edx, dword [esp + 0x6c]
sub esi, eax
jns 0x1005571d
mov eax, ebp
sar ebp, 0x1f
neg eax
shr eax, 0x1f
or eax, ebp
add edx, eax
mov dword [esp + 0x6c], edx
jmp 0x1005571d
mov edx, dword [esp + 0x6c]
jmp 0x10055721
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x60]
inc ebx
mov ebp, dword [esp + 0x48]
add ecx, 4
mov esi, dword [esp + 0x34]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x70], esi
cmp ebx, dword [esp + 0x64]
jl 0x10055535
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
pop edi
pop esi
mov word [ebx + 6], bp
pop ebp
mov word [ebx], dx
mov word [ebx + 2], cx
mov word [ebx + 4], ax
pop ebx
add esp, 0x48
ret
cmp edx, 8
jne 0x10055c03
mov ebx, dword [esp + 0x68]
movzx edi, word [ebx + 8]
movzx edx, word [ebx]
movzx ebp, word [ebx + 2]
movzx eax, word [ebx + 4]
movzx esi, word [ebx + 6]
mov dword [esp + 0x1c], edi
movzx edi, word [ebx + 0xa]
mov dword [esp + 0x20], edi
movzx edi, word [ebx + 0xc]
mov dword [esp + 0x24], edi
movzx edi, word [ebx + 0xe]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x64]
cmp dword [esp + 0x10], edi
mov edi, dword [esp + 0x74]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], esi
jge 0x10055bcc
mov ebx, dword [esp + 0x10]
lea edx, [ebx - 2]
lea edx, [ecx + edx*4]
mov dword [esp + 0x10], edx
jmp 0x100557e4
mov edx, dword [esp + 0x10]
mov esi, dword [ecx]
lea ecx, [edx + 4]
mov eax, esi
mov dword [esp + 0x54], ecx
sub eax, dword [ecx]
mov ebp, esi
mov dword [esp + 0x3c], eax
mov ecx, esi
sub ecx, dword [edx - 0x14]
mov eax, esi
sub eax, dword [edx]
mov dword [esp + 0x38], eax
mov eax, esi
sub eax, dword [edx - 4]
sub ebp, dword [edx - 0xc]
mov dword [esp + 0x34], eax
mov eax, esi
sub eax, dword [edx - 8]
mov dword [esp + 0x30], eax
mov eax, esi
sub eax, dword [edx - 0x10]
mov edx, esi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x4c], ecx
sub edx, dword [eax - 0x18]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x48], edx
mov eax, dword [eax + ebx*4]
mov dword [esp + 0x74], eax
neg dword [esp + 0x74]
shr dword [esp + 0x74], 0x1f
mov dword [esp + 0x50], eax
sar eax, 0x1f
or dword [esp + 0x74], eax
mov eax, dword [esp + 0x28]
cwde
imul eax, edx
mov edx, dword [esp + 0x40]
sub edx, eax
mov eax, dword [esp + 0x24]
cwde
imul eax, ecx
mov ecx, edi
sub edx, eax
mov eax, dword [esp + 0x20]
cwde
imul eax, dword [esp + 0x2c]
sub edx, eax
mov eax, dword [esp + 0x1c]
cwde
imul eax, ebp
sub edx, eax
mov eax, dword [esp + 0x14]
cwde
imul eax, dword [esp + 0x30]
sub edx, eax
mov eax, dword [esp + 0x18]
cwde
imul eax, dword [esp + 0x34]
sub edx, eax
mov eax, dword [esp + 0x70]
cwde
imul eax, dword [esp + 0x38]
sub edx, eax
mov eax, dword [esp + 0x6c]
cwde
imul eax, dword [esp + 0x3c]
sub edx, eax
mov eax, dword [esp + 0x10]
sar edx, cl
mov ecx, dword [esp + 0x44]
add edx, esi
mov esi, dword [esp + 0x50]
add edx, esi
shl edx, cl
sar edx, cl
mov dword [eax + 8], edx
mov eax, dword [esp + 0x74]
test eax, eax
jle 0x10055a38
mov edx, dword [esp + 0x48]
mov ecx, edx
neg ecx
mov eax, edx
shr ecx, 0x1f
sar eax, 0x1f
or ecx, eax
sub dword [esp + 0x28], ecx
imul edx, ecx
mov ecx, edi
sar edx, cl
sub esi, edx
test esi, esi
jle 0x10055b9a
mov edx, dword [esp + 0x4c]
mov ecx, edx
neg ecx
mov eax, edx
shr ecx, 0x1f
sar eax, 0x1f
or ecx, eax
sub dword [esp + 0x24], ecx
imul edx, ecx
mov ecx, edi
sar edx, cl
neg edx
lea esi, [esi + edx*2]
test esi, esi
jle 0x10055b9a
mov edx, dword [esp + 0x2c]
mov ecx, edx
neg ecx
mov eax, edx
sar eax, 0x1f
shr ecx, 0x1f
or ecx, eax
sub dword [esp + 0x20], ecx
imul edx, ecx
mov ecx, edi
sar edx, cl
lea eax, [edx*4]
sub eax, edx
neg eax
add esi, eax
test esi, esi
jle 0x10055b9a
mov ecx, ebp
mov eax, ebp
neg ecx
sar eax, 0x1f
shr ecx, 0x1f
or ecx, eax
sub dword [esp + 0x1c], ecx
imul ebp, ecx
mov ecx, edi
sar ebp, cl
neg ebp
lea esi, [esi + ebp*4]
test esi, esi
jle 0x10055b9a
mov edx, dword [esp + 0x30]
mov ecx, edx
neg ecx
mov eax, edx
sar eax, 0x1f
shr ecx, 0x1f
or ecx, eax
sub dword [esp + 0x14], ecx
imul edx, ecx
mov ecx, edi
sar edx, cl
mov eax, edx
neg eax
shl eax, 2
sub eax, edx
add esi, eax
test esi, esi
jle 0x10055b9a
mov edx, dword [esp + 0x34]
mov ecx, edx
neg ecx
mov ebp, dword [esp + 0x70]
mov eax, edx
shr ecx, 0x1f
sar eax, 0x1f
or ecx, eax
sub dword [esp + 0x18], ecx
imul edx, ecx
mov ecx, edi
sar edx, cl
lea eax, [edx*4]
sub eax, edx
neg eax
lea esi, [esi + eax*2]
test esi, esi
jle 0x10055b9e
mov edx, dword [esp + 0x38]
mov ecx, edx
neg ecx
mov eax, edx
sar eax, 0x1f
shr ecx, 0x1f
or ecx, eax
imul edx, ecx
sub ebp, ecx
mov ecx, edi
mov dword [esp + 0x70], ebp
sar edx, cl
lea eax, [edx*8]
sub eax, edx
mov edx, dword [esp + 0x6c]
sub esi, eax
test esi, esi
jle 0x10055ba2
mov ecx, dword [esp + 0x3c]
mov eax, ecx
neg eax
sar ecx, 0x1f
shr eax, 0x1f
or eax, ecx
sub edx, eax
mov dword [esp + 0x6c], edx
jmp 0x10055ba2
jns 0x10055b9a
mov edx, dword [esp + 0x48]
mov ecx, edx
neg ecx
mov eax, edx
shr ecx, 0x1f
sar eax, 0x1f
or ecx, eax
neg ecx
sub dword [esp + 0x28], ecx
imul edx, ecx
mov ecx, edi
sar edx, cl
sub esi, edx
jns 0x10055b9a
mov edx, dword [esp + 0x4c]
mov ecx, edx
neg ecx
mov eax, edx
shr ecx, 0x1f
sar eax, 0x1f
or ecx, eax
neg ecx
sub dword [esp + 0x24], ecx
imul edx, ecx
mov ecx, edi
sar edx, cl
neg edx
lea esi, [esi + edx*2]
test esi, esi
jns 0x10055b9a
mov edx, dword [esp + 0x2c]
mov ecx, edx
neg ecx
mov eax, edx
sar eax, 0x1f
shr ecx, 0x1f
or ecx, eax
neg ecx
sub dword [esp + 0x20], ecx
imul edx, ecx
mov ecx, edi
sar edx, cl
lea eax, [edx*4]
sub eax, edx
neg eax
add esi, eax
jns 0x10055b9a
mov ecx, ebp
mov eax, ebp
neg ecx
sar eax, 0x1f
shr ecx, 0x1f
or ecx, eax
neg ecx
sub dword [esp + 0x1c], ecx
imul ebp, ecx
mov ecx, edi
sar ebp, cl
neg ebp
lea esi, [esi + ebp*4]
test esi, esi
jns 0x10055b9a
mov edx, dword [esp + 0x30]
mov ecx, edx
neg ecx
mov eax, edx
sar eax, 0x1f
shr ecx, 0x1f
or ecx, eax
neg ecx
sub dword [esp + 0x14], ecx
imul edx, ecx
mov ecx, edi
sar edx, cl
mov eax, edx
neg eax
shl eax, 2
sub eax, edx
add esi, eax
jns 0x10055b9a
mov edx, dword [esp + 0x34]
mov ecx, edx
neg ecx
mov ebp, dword [esp + 0x70]
mov eax, edx
shr ecx, 0x1f
sar eax, 0x1f
or ecx, eax
neg ecx
sub dword [esp + 0x18], ecx
imul edx, ecx
mov ecx, edi
sar edx, cl
lea eax, [edx*4]
sub eax, edx
neg eax
lea esi, [esi + eax*2]
test esi, esi
jns 0x10055b9e
mov edx, dword [esp + 0x38]
mov ecx, edx
neg ecx
mov eax, edx
shr ecx, 0x1f
sar eax, 0x1f
or ecx, eax
neg ecx
imul edx, ecx
sub ebp, ecx
mov ecx, edi
mov dword [esp + 0x70], ebp
sar edx, cl
lea eax, [edx*8]
sub eax, edx
mov edx, dword [esp + 0x6c]
sub esi, eax
jns 0x10055ba2
mov ecx, dword [esp + 0x3c]
mov eax, ecx
neg eax
sar ecx, 0x1f
shr eax, 0x1f
or eax, ecx
add edx, eax
mov dword [esp + 0x6c], edx
jmp 0x10055ba2
mov ebp, dword [esp + 0x70]
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x60]
inc ebx
mov eax, dword [esp + 0x54]
add ecx, 4
mov dword [esp + 0x60], ecx
mov dword [esp + 0x10], eax
cmp ebx, dword [esp + 0x64]
jl 0x100557e0
mov ebx, dword [esp + 0x68]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov word [ebx + 4], ax
mov eax, dword [esp + 0x1c]
mov word [ebx + 8], ax
mov eax, dword [esp + 0x20]
pop edi
mov word [ebx + 0xa], ax
mov eax, dword [esp + 0x20]
mov word [ebx + 6], si
pop esi
mov word [ebx + 2], bp
mov word [ebx + 0xc], ax
mov eax, dword [esp + 0x20]
pop ebp
mov word [ebx], dx
mov word [ebx + 0xe], ax
pop ebx
add esp, 0x48
ret
cmp ebx, dword [esp + 0x64]
jge 0x10055de3
lea eax, [ebx - 1]
lea eax, [ecx + eax*4]
mov dword [esp + 0x70], eax
nop word [eax + eax]
mov ebp, dword [ecx]
xor esi, esi
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x54], eax
mov dword [esp + 0x48], ebp
cmp edx, 2
jl 0x10055c94
mov ebx, dword [esp + 0x70]
mov eax, esi
mov edi, dword [esp + 0x68]
mov edx, dword [ebx]
lea ebx, [ebx - 8]
movsx ecx, word [edi + esi*2]
sub edx, ebp
imul edx, ecx
movsx ecx, word [edi + esi*2 + 2]
add esi, 2
add eax, edx
mov edx, dword [ebx + 4]
sub edx, ebp
imul edx, ecx
add dword [esp + 0x38], edx
mov edx, dword [esp + 0x6c]
dec edx
cmp esi, edx
jl 0x10055c53
mov edi, dword [esp + 0x74]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x54]
cmp esi, edx
jge 0x10055cb6
lea ecx, [esi*4]
mov edx, eax
sub edx, ecx
mov ecx, dword [esp + 0x68]
mov edx, dword [edx]
movsx ecx, word [ecx + esi*2]
sub edx, ebp
imul edx, ecx
mov dword [esp + 0x4c], edx
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x38]
add edx, dword [esp + 0x3c]
add edx, dword [esp + 0x4c]
mov ebx, dword [ecx + ebx*4]
mov esi, ebx
add edx, dword [esp + 0x40]
neg esi
add dword [esp + 0x70], 4
mov ecx, ebx
sar ecx, 0x1f
shr esi, 0x1f
or esi, ecx
mov ecx, edi
sar edx, cl
mov ecx, dword [esp + 0x44]
add edx, ebp
add edx, ebx
shl edx, cl
sar edx, cl
mov ecx, dword [esp + 0x70]
mov dword [ecx], edx
test esi, esi
jle 0x10055d5f
mov ecx, dword [esp + 0x6c]
lea edx, [ecx - 1]
mov ebp, edx
test ebp, ebp
js 0x10055dbd
sub ecx, edx
mov dword [esp + 0x4c], ecx
lea ecx, [ebp*4]
sub eax, ecx
nop word [eax + eax]
mov esi, dword [esp + 0x48]
sub esi, dword [eax]
mov edx, esi
mov ecx, esi
neg edx
sar ecx, 0x1f
shr edx, 0x1f
or edx, ecx
mov ecx, dword [esp + 0x68]
imul esi, edx
sub word [ecx + ebp*2], dx
mov ecx, edi
sar esi, cl
mov ecx, dword [esp + 0x4c]
imul esi, ecx
sub ebx, esi
test ebx, ebx
jle 0x10055dbd
inc ecx
add eax, 4
sub ebp, 1
mov dword [esp + 0x4c], ecx
jns 0x10055d20
jmp 0x10055dbd
jns 0x10055dbd
mov ecx, dword [esp + 0x6c]
lea edx, [ecx - 1]
mov ebp, edx
test ebp, ebp
js 0x10055dbd
sub ecx, edx
mov dword [esp + 0x4c], ecx
lea ecx, [ebp*4]
sub eax, ecx
nop dword [eax]
mov esi, dword [esp + 0x48]
sub esi, dword [eax]
mov edx, esi
mov ecx, esi
neg edx
sar ecx, 0x1f
shr edx, 0x1f
or edx, ecx
mov ecx, dword [esp + 0x68]
imul esi, edx
add word [ecx + ebp*2], dx
mov ecx, edi
neg esi
sar esi, cl
mov ecx, dword [esp + 0x4c]
imul esi, ecx
sub ebx, esi
jns 0x10055dbd
inc ecx
add eax, 4
sub ebp, 1
mov dword [esp + 0x4c], ecx
jns 0x10055d80
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x60]
inc ebx
mov edx, dword [esp + 0x6c]
add ecx, 4
mov eax, dword [esp + 0x70]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x60], ecx
cmp ebx, dword [esp + 0x64]
jl 0x10055c20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret