Function at 0x5571d0
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 ebx, dword [esi]
cmp word [ebx], 1
lea edi, [ebx + 2]
je 0x55737b
movzx ecx, word [edi]
xor edx, edx
mov eax, dword [esi + 0x48]
div ecx
mov edi, dword [esi + 0x4c]
xor edx, edx
mov ebp, eax
mov ebx, dword [ebx + 4]
mov eax, edi
mov dword [esi + 0x48], ebp
div ebp
mov dword [esp + 0x10], ecx
mov edx, eax
movzx eax, byte [ebx + 1]
mov ecx, edx
sub edx, eax
jns 0x557286
imul eax, ebp
mov dword [esi + 0x4c], edi
mov dword [esi + 0x48], eax
cmp eax, 0x1000000
jae 0x55726f
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 0x55726f
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.00556d70
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
movzx edi, byte [ebx + 7]
add ebx, 6
sub edx, edi
js 0x55730d
sub eax, 1
jne 0x557293
mov edi, dword [esp + 0x10]
cmp ecx, edi
jae 0x5575f4
sub ecx, edx
mov eax, ebp
imul eax, ecx
sub edi, ecx
imul edi, ebp
mov ecx, 0x40
sub dword [esi + 0x4c], eax
mov eax, dword [esi + 8]
mov dword [esi + 0x48], edi
lea edi, [esp + 0x28]
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 0x5572f0
jmp 0x5574b1
sub ecx, edi
sub ecx, edx
imul ecx, ebp
imul ebp, edi
sub dword [esi + 0x4c], ecx
mov dword [esi + 0x48], ebp
cmp ebp, 0x1000000
jae 0x557364
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 0x557364
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.00556ce0
movzx eax, bl
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 8]
movzx edx, byte [eax]
add edx, 0xc0
shr edx, 5
and edx, 8
mov dword [esi + 0x1c], edx
mov eax, dword [ebx + 8]
movzx eax, word [eax]
movzx ecx, byte [eax + esi + 0x1a7]
movzx eax, byte [edi]
add eax, 0xc0
shr eax, 4
and eax, 0x10
add ecx, eax
movzx eax, byte [ebx + 3]
shl eax, 6
add ecx, eax
mov eax, dword [esi + 0x20]
sar eax, 0x1a
and eax, 0x20
add ecx, eax
add ecx, dword [esi + 0x14]
add ecx, edx
movzx edx, word [esi + ecx*2 + 0x97c]
lea ebx, [esi + ecx*2]
mov ecx, dword [esi + 0x48]
shr ecx, 0xe
lea eax, [edx + 0x20]
imul ecx, edx
shr eax, 7
sub edx, eax
movzx eax, dx
cmp dword [esi + 0x4c], ecx
jae 0x557476
sub eax, 0xffffff80
mov word [ebx + 0x97c], ax
mov dword [esi + 0x48], ecx
cmp ecx, 0x1000000
jae 0x55741f
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 [edi + 4]
mov cl, byte [edi + 1]
movzx eax, word [edi + 2]
mov bl, byte [edi]
inc dword [esi + 0x20]
shl edx, 0x10
or edx, eax
mov dword [esi + 8], edi
cmp cl, 0x80
mov dword [esi + 0x14], 1
setb al
add al, cl
mov byte [edi + 1], al
cmp dword [esi + 0xc], 0
jne 0x557464
cmp edx, dword [esi + 0x40]
jbe 0x557464
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.00556e20
movzx eax, bl
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov word [ebx + 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
cmp dword [esi + 0x48], 0x1000000
jae 0x5574f9
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 0x5574f9
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 0x5576cb
movzx edi, word [edx]
cmp edi, eax
je 0x557502
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 0x557545
mov esi, dword [esp + 0x1c]
lea eax, [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, esi
push eax
call fcn.00556830
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 0x557601
cmp edi, ecx
jae 0x5575f4
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 0x5575e0
jmp 0x5574b1
mov eax, 0xfffffffe
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
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 0x557610
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 0x55768f
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 0x55768f
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 0x5576b0
sub byte [edx + 3], 1
jne 0x5576b0
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.00556de0
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