Function at 0x557a90
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x118
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x1c], esi
mov ecx, dword [esi]
cmp word [ecx], 1
lea ebp, [ecx + 2]
je 0x557c54
mov ebx, dword [ecx + 4]
xor edx, edx
movzx ecx, word [ebp]
mov eax, dword [esi + 0x48]
div ecx
mov ebp, dword [esi + 0x4c]
xor edx, edx
mov dword [esp + 0x10], ecx
mov ecx, eax
mov eax, ebp
mov dword [esi + 0x48], ecx
div ecx
mov edx, eax
movzx eax, byte [ebx + 1]
mov edi, edx
sub edx, eax
jns 0x557b4b
imul ecx, eax
mov dword [esi + 0x4c], ebp
mov dword [esi + 0x48], ecx
cmp ecx, 0x1000000
jae 0x557b34
mov eax, dword [esi + 0x54]
mov ecx, eax
mov eax, dword [eax]
call eax
movzx ecx, al
mov eax, dword [esi + 0x4c]
shl eax, 8
or eax, ecx
mov dword [esi + 0x4c], eax
mov eax, dword [esi + 0x48]
shl eax, 8
mov dword [esi + 0x48], eax
cmp eax, 0x1000000
jae 0x557b34
mov eax, dword [esi + 0x54]
mov ecx, eax
mov eax, dword [eax]
call eax
movzx ecx, al
mov eax, dword [esi + 0x4c]
shl eax, 8
or eax, ecx
shl dword [esi + 0x48], 8
mov dword [esi + 0x4c], eax
mov dword [esi + 8], ebx
mov ecx, esi
mov bl, byte [ebx]
call fcn.00557630
movzx eax, bl
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi]
mov dword [esi + 0x14], 0
movzx eax, word [eax]
dec eax
nop dword [eax + eax]
movzx ebp, byte [ebx + 7]
add ebx, 6
sub edx, ebp
js 0x557be3
sub eax, 1
jne 0x557b60
mov ebp, dword [esp + 0x10]
cmp edi, ebp
jb 0x557b85
mov eax, 0xfffffffe
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
sub edi, edx
mov eax, ecx
imul eax, edi
sub ebp, edi
imul ebp, ecx
lea edi, [esp + 0x28]
mov ecx, 0x40
sub dword [esi + 0x4c], eax
mov eax, dword [esi + 8]
mov dword [esi + 0x48], ebp
movzx eax, byte [eax]
add eax, 0xc0
shr eax, 5
and eax, 8
mov dword [esi + 0x1c], eax
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov eax, dword [esi]
mov edx, dword [eax + 4]
movzx eax, byte [ebx]
mov byte [esp + eax + 0x28], 0
movzx ecx, byte [edx]
movzx eax, byte [edx + 6]
add edx, 0xc
mov byte [esp + ecx + 0x28], 0
mov byte [esp + eax + 0x28], 0
cmp edx, ebx
jb 0x557bc6
jmp 0x557d90
sub edi, ebp
sub edi, edx
imul edi, ecx
imul ecx, ebp
sub dword [esi + 0x4c], edi
mov dword [esi + 0x48], ecx
cmp ecx, 0x1000000
jae 0x557c3d
mov eax, dword [esi + 0x54]
mov ecx, eax
mov eax, dword [eax]
call eax
movzx ecx, al
mov eax, dword [esi + 0x4c]
shl eax, 8
or eax, ecx
mov dword [esi + 0x4c], eax
mov eax, dword [esi + 0x48]
shl eax, 8
mov dword [esi + 0x48], eax
cmp eax, 0x1000000
jae 0x557c3d
mov eax, dword [esi + 0x54]
mov ecx, eax
mov eax, dword [eax]
call eax
movzx ecx, al
mov eax, dword [esi + 0x4c]
shl eax, 8
or eax, ecx
shl dword [esi + 0x48], 8
mov dword [esi + 0x4c], eax
mov dword [esi + 8], ebx
mov ecx, esi
mov bl, byte [ebx]
call fcn.005575a0
movzx eax, bl
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 8]
movzx edi, byte [eax]
add edi, 0xc0
shr edi, 5
and edi, 8
mov dword [esi + 0x1c], edi
mov eax, dword [ecx + 8]
movzx ecx, byte [ecx + 3]
shl ecx, 6
add ecx, edi
movzx eax, word [eax]
movzx edx, byte [eax + esi + 0x1a7]
movzx eax, byte [ebp]
add eax, 0xc0
shr eax, 4
and eax, 0x10
add edx, eax
mov eax, dword [esi + 0x20]
sar eax, 0x1a
add ecx, edx
and eax, 0x20
add eax, ecx
mov ecx, dword [esi + 0x48]
add eax, dword [esi + 0x14]
movzx edx, word [esi + eax*2 + 0x97c]
lea edi, [esi + eax*2]
shr ecx, 0xe
imul ecx, edx
lea eax, [edx + 0x20]
shr eax, 7
sub edx, eax
movzx eax, dx
cmp dword [esi + 0x4c], ecx
jae 0x557d51
sub eax, 0xffffff80
mov word [edi + 0x97c], ax
mov dword [esi + 0x48], ecx
cmp ecx, 0x1000000
jae 0x557cf9
mov eax, dword [esi + 0x54]
mov ecx, eax
mov eax, dword [eax]
call eax
movzx ecx, al
mov eax, dword [esi + 0x4c]
shl eax, 8
or eax, ecx
shl dword [esi + 0x48], 8
mov dword [esi + 0x4c], eax
movzx edx, word [ebp + 4]
mov cl, byte [ebp + 1]
movzx eax, word [ebp + 2]
mov bl, byte [ebp]
inc dword [esi + 0x20]
shl edx, 0x10
or edx, eax
mov dword [esi + 8], ebp
cmp cl, 0x80
mov dword [esi + 0x14], 1
setb al
add al, cl
mov byte [ebp + 1], al
cmp dword [esi + 0xc], 0
jne 0x557d3f
cmp edx, dword [esi + 0x40]
jbe 0x557d3f
mov dword [esi], edx
mov dword [esi + 4], edx
movzx eax, bl
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.005576e0
movzx eax, bl
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov word [edi + 0x97c], ax
lea edi, [esp + 0x28]
shr edx, 0xa
movzx eax, byte [edx + esi + 0x3a8]
sub dword [esi + 0x4c], ecx
sub dword [esi + 0x48], ecx
mov ecx, 0x40
mov dword [esi + 0x10], eax
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov eax, dword [esi]
movzx eax, byte [eax + 2]
mov dword [esi + 0x14], 0
mov byte [esp + eax + 0x28], 0
nop dword [eax]
cmp dword [esi + 0x48], 0x1000000
jae 0x557dd8
mov eax, dword [esi + 0x54]
mov ecx, eax
mov eax, dword [eax]
call eax
shl dword [esi + 0x48], 8
movzx ecx, al
mov eax, dword [esi + 0x4c]
shl eax, 8
or eax, ecx
cmp dword [esi + 0x48], 0x1000000
mov dword [esi + 0x4c], eax
jae 0x557dd8
mov eax, dword [esi + 0x54]
mov ecx, eax
mov eax, dword [eax]
call eax
movzx ecx, al
mov eax, dword [esi + 0x4c]
shl eax, 8
or eax, ecx
shl dword [esi + 0x48], 8
mov dword [esi + 0x4c], eax
mov edx, dword [esi]
movzx eax, word [edx]
mov dword [esp + 0x18], eax
inc dword [esi + 0xc]
mov edx, dword [edx + 8]
test edx, edx
je 0x557f9e
movzx edi, word [edx]
cmp edi, eax
je 0x557de1
mov ecx, dword [edx + 4]
mov eax, edi
shr eax, 1
and edi, 1
mov dword [esp + 0x10], eax
movzx eax, byte [ecx]
movzx ebp, byte [esp + eax + 0x28]
movzx eax, byte [ecx + 1]
and ebp, eax
mov dword [esi], edx
mov esi, dword [esp + 0x10]
mov eax, edi
neg eax
and ebp, eax
lea eax, [edi + edi*2]
lea ebx, [ecx + eax*2]
movzx eax, byte [ebx + 6]
lea ebx, [ebx + 0xc]
movzx ecx, byte [ebx - 0xc]
movzx edi, byte [esp + eax + 0x28]
movzx eax, byte [ebx - 5]
movzx ecx, byte [esp + ecx + 0x28]
and edi, eax
movzx eax, byte [ebx - 0xb]
and ecx, eax
add ebp, ecx
add ebp, edi
sub esi, 1
jne 0x557e24
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, esi
push eax
call fcn.005570f0
mov ecx, dword [esp + 0x14]
xor edx, edx
mov dword [esp + 0x10], eax
add ecx, ebp
mov eax, dword [esi + 0x48]
div ecx
xor edx, edx
mov dword [esp + 0x14], ecx
mov ebx, eax
mov eax, dword [esi + 0x4c]
div ebx
mov dword [esp + 0x20], ebx
mov edi, eax
mov dword [esi + 0x48], ebx
cmp edi, ebp
jb 0x557ed4
cmp edi, ecx
jae 0x557b78
mov eax, ebx
imul eax, ebp
sub dword [esi + 0x4c], eax
mov eax, ecx
sub eax, ebp
imul eax, ebx
mov dword [esi + 0x48], eax
mov eax, dword [esp + 0x10]
add word [eax], cx
mov eax, dword [esi]
mov ecx, dword [eax + 4]
movzx eax, word [eax]
lea eax, [eax + eax*2]
lea edx, [ecx + eax*2]
nop dword [eax]
movzx eax, byte [ecx]
add ecx, 6
mov byte [esp + eax + 0x28], 0
cmp ecx, edx
jne 0x557ec0
jmp 0x557d90
mov eax, dword [esi]
mov ebp, edi
mov ebx, dword [eax + 4]
nop dword [eax + eax]
movzx eax, byte [ebx + 1]
mov dword [esp + 0x1c], eax
movzx eax, byte [ebx]
mov dword [esp + 0x24], ebx
movzx ecx, byte [esp + eax + 0x28]
movzx eax, byte [ebx + 1]
add ebx, 6
and ecx, eax
sub edi, ecx
jns 0x557ee0
mov eax, dword [esp + 0x20]
sub ebp, edi
sub ebp, dword [esp + 0x1c]
imul ebp, eax
imul eax, dword [esp + 0x1c]
sub dword [esi + 0x4c], ebp
mov dword [esi + 0x48], eax
cmp eax, 0x1000000
jae 0x557f62
mov eax, dword [esi + 0x54]
mov ecx, eax
mov eax, dword [eax]
call eax
movzx ecx, al
mov eax, dword [esi + 0x4c]
shl eax, 8
or eax, ecx
mov dword [esi + 0x4c], eax
mov eax, dword [esi + 0x48]
shl eax, 8
mov dword [esi + 0x48], eax
cmp eax, 0x1000000
jae 0x557f62
mov eax, dword [esi + 0x54]
mov ecx, eax
mov eax, dword [eax]
call eax
movzx ecx, al
mov eax, dword [esi + 0x4c]
shl eax, 8
or eax, ecx
shl dword [esi + 0x48], 8
mov dword [esi + 0x4c], eax
mov edx, dword [esp + 0x10]
mov cl, byte [edx + 2]
cmp cl, 7
jae 0x557f83
sub byte [edx + 3], 1
jne 0x557f83
shl word [edx], 1
mov al, 3
shl al, cl
inc cl
mov byte [edx + 3], al
mov byte [edx + 2], cl
mov ebx, dword [esp + 0x24]
mov ecx, esi
mov dword [esi + 8], ebx
mov bl, byte [ebx]
call fcn.005576a0
movzx eax, bl
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
or eax, 0xffffffff
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret