Function at 0x5519b0
Capabilities:
Enumerate pe sections

Disassembly:
mov al, byte [ecx + ebp]
mov ebp, dword [edi + esi*4]
or eax, 0xffffff00
shl eax, 8
or ebx, eax
mov eax, dword [esp + 0x20]
add ebp, eax
xor eax, eax
shl ebx, 8
mov al, byte [ecx + ebp]
mov ebp, dword [esp + 0x14]
or ebx, eax
mov eax, dword [esp + 0x34]
mov dword [eax + 0xc], ebx
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x44]
dec ebx
je 0x551a5f
dec ebx
je 0x5519ff
dec ebx
je 0x55199f
xor ebx, ebx
mov ebp, dword [ebp + edx*4]
mov bl, byte [eax + 0xe]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x10]
mov eax, dword [eax + esi*4]
add eax, dword [ebx + edx*4]
mov ebx, dword [esp + 0x20]
sar eax, 0x10
add eax, ebx
xor ebx, ebx
mov bl, byte [eax + ecx]
mov eax, dword [esp + 0x20]
add ebp, eax
xor eax, eax
mov al, byte [ecx + ebp]
mov ebp, dword [edi + esi*4]
or eax, 0xffffff00
shl eax, 8
or ebx, eax
mov eax, dword [esp + 0x20]
add ebp, eax
xor eax, eax
shl ebx, 8
mov al, byte [ecx + ebp]
mov ebp, dword [esp + 0x14]
or ebx, eax
mov eax, dword [esp + 0x1c]
mov dword [eax + 8], ebx
mov eax, dword [esp + 0x50]
xor ebx, ebx
mov ebp, dword [ebp + edx*4]
mov bl, byte [eax + 0xa]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x10]
mov eax, dword [eax + esi*4]
add eax, dword [ebx + edx*4]
mov ebx, dword [esp + 0x20]
sar eax, 0x10
add eax, ebx
xor ebx, ebx
mov bl, byte [eax + ecx]
mov eax, dword [esp + 0x20]
add ebp, eax
xor eax, eax
mov al, byte [ecx + ebp]
mov ebp, dword [edi + esi*4]
or eax, 0xffffff00
shl eax, 8
or ebx, eax
mov eax, dword [esp + 0x20]
add ebp, eax
xor eax, eax
shl ebx, 8
mov al, byte [ecx + ebp]
mov ebp, dword [esp + 0x14]
or ebx, eax
mov eax, dword [esp + 0x18]
mov dword [eax + 8], ebx
mov eax, dword [esp + 0x50]
xor ebx, ebx
mov ebp, dword [ebp + edx*4]
mov bl, byte [eax + 6]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x10]
mov eax, dword [eax + esi*4]
add eax, dword [ebx + edx*4]
mov ebx, dword [esp + 0x20]
sar eax, 0x10
add eax, ebx
xor ebx, ebx
mov bl, byte [eax + ecx]
mov eax, dword [esp + 0x20]
add ebp, eax
xor eax, eax
mov al, byte [ecx + ebp]
mov ebp, dword [edi + esi*4]
or eax, 0xffffff00
shl eax, 8
or ebx, eax
mov eax, dword [esp + 0x20]
add ebp, eax
xor eax, eax
shl ebx, 8
mov al, byte [ecx + ebp]
mov ebp, dword [esp + 0x14]
or ebx, eax
mov eax, dword [esp + 0x4c]
mov dword [eax + 8], ebx
mov eax, dword [esp + 0x50]
xor ebx, ebx
mov ebp, dword [ebp + edx*4]
mov bl, byte [eax + 2]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x10]
mov eax, dword [eax + esi*4]
add eax, dword [ebx + edx*4]
mov ebx, dword [esp + 0x20]
sar eax, 0x10
add eax, ebx
xor ebx, ebx
mov bl, byte [eax + ecx]
mov eax, dword [esp + 0x20]
add ebp, eax
xor eax, eax
mov al, byte [ecx + ebp]
mov ebp, dword [edi + esi*4]
or eax, 0xffffff00
shl eax, 8
or ebx, eax
mov eax, dword [esp + 0x20]
add ebp, eax
xor eax, eax
shl ebx, 8
mov al, byte [ecx + ebp]
mov ebp, dword [esp + 0x14]
or ebx, eax
mov eax, dword [esp + 0x34]
mov dword [eax + 8], ebx
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x44]
dec ebx
je 0x551bf4
dec ebx
je 0x551b94
dec ebx
je 0x551b34
xor ebx, ebx
mov ebp, dword [ebp + edx*4]
mov bl, byte [eax + 0xd]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x10]
mov eax, dword [eax + esi*4]
add eax, dword [ebx + edx*4]
mov ebx, dword [esp + 0x20]
sar eax, 0x10
add eax, ebx
xor ebx, ebx
mov bl, byte [eax + ecx]
mov eax, dword [esp + 0x20]
add ebp, eax
xor eax, eax
mov al, byte [ecx + ebp]
mov ebp, dword [edi + esi*4]
or eax, 0xffffff00
shl eax, 8
or ebx, eax
mov eax, dword [esp + 0x20]
add ebp, eax
xor eax, eax
shl ebx, 8
mov al, byte [ecx + ebp]
mov ebp, dword [esp + 0x14]
or ebx, eax
mov eax, dword [esp + 0x1c]
mov dword [eax + 4], ebx
mov eax, dword [esp + 0x50]
xor ebx, ebx
mov ebp, dword [ebp + edx*4]
mov bl, byte [eax + 9]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x10]
mov eax, dword [eax + esi*4]
add eax, dword [ebx + edx*4]
mov ebx, dword [esp + 0x20]
sar eax, 0x10
add eax, ebx
xor ebx, ebx
mov bl, byte [eax + ecx]
mov eax, dword [esp + 0x20]
add ebp, eax
xor eax, eax
mov al, byte [ecx + ebp]
mov ebp, dword [edi + esi*4]
or eax, 0xffffff00
shl eax, 8
or ebx, eax
mov eax, dword [esp + 0x20]
add ebp, eax
xor eax, eax
shl ebx, 8
mov al, byte [ecx + ebp]
mov ebp, dword [esp + 0x14]
or ebx, eax
mov eax, dword [esp + 0x18]
mov dword [eax + 4], ebx
mov eax, dword [esp + 0x50]
xor ebx, ebx
mov ebp, dword [ebp + edx*4]
mov bl, byte [eax + 5]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x10]
mov eax, dword [eax + esi*4]
add eax, dword [ebx + edx*4]
mov ebx, dword [esp + 0x20]
sar eax, 0x10
add eax, ebx
xor ebx, ebx
mov bl, byte [eax + ecx]
mov eax, dword [esp + 0x20]
add ebp, eax
xor eax, eax
mov al, byte [ecx + ebp]
mov ebp, dword [edi + esi*4]
or eax, 0xffffff00
shl eax, 8
or ebx, eax
mov eax, dword [esp + 0x20]
add ebp, eax
xor eax, eax
shl ebx, 8
shl ebx, 2
sub ebx, ebp
shl ebx, 2
sub ebx, ebp
shl ebx, 5
sub ebx, ebp
mov ebp, dword [esp + 0x10]
shl ebx, 3
jecxz 0x551bf9
add ebp, ebx
mov dword [esp + 0x10], ebp
insb byte es:[edi], dx
and al, 0x10
mov ebp, dword [esp + 0x14]
add ebp, ebx
mov ebx, dword [esp + 0x28]
imul ebx, ebx, 0xad5
mov dword [esp + 0x28], ebx
lea ebx, [ecx + ecx*2]
shl ebx, 6
sub ebx, ecx
mov dword [esp + 0x14], ebp
lea ebx, [ebx + ebx*4]
shl ebx, 1
sub ebx, ecx
shl ebx, 1
mov ebp, ebx
lea ebx, [eax + eax*8]
shl ebx, 4
add ebx, eax
lea ebx, [ebx + ebx*8]
lea eax, [eax + ebx*2]
mov ebx, dword [esp + 0x18]
sub ebx, ecx
sub eax, ebp
mov ebp, dword [esp + 0x28]
lea ecx, [ebx + ebx*2]
add eax, ebp
lea ecx, [ecx + ecx*4]
shl ecx, 8
add ecx, ebx
mov ebx, esi
shl ebx, 5
add ebx, esi
shl ecx, 1
lea ebx, [ebx + ebx*2]
add eax, ecx
lea ebx, [esi + ebx*8]
lea ebx, [ebx + ebx*8]
shl ebx, 1
sub ebx, esi
mov esi, dword [esp + 0x18]
shl esi, 6
sub esi, dword [esp + 0x18]
lea esi, [esi + esi*4]
lea esi, [esi + esi*4]
shl esi, 1
sub esi, ebx
add esi, ecx
mov ecx, dword [esp + 0x3c]
add ebp, esi
mov esi, dword [esp + 0x24]
lea ebx, [ecx + esi]
sub ecx, esi
mov esi, dword [esp + 0x20]
sar ecx, 0xb
mov dword [edx + 0x160], ecx
mov ecx, dword [esp + 0x40]
sar ebx, 0xb
mov dword [edx - 0x20], ebx
lea ebx, [ecx + esi]
sub ecx, esi
mov esi, dword [esp + 0x10]
sar ebx, 0xb
sar ecx, 0xb
mov dword [edx + 0x140], ecx
mov ecx, dword [esp + 0x44]
mov dword [edx], ebx
lea ebx, [ecx + esi]
sub ecx, esi
mov esi, dword [esp + 0x14]
sar ecx, 0xb
mov dword [edx + 0x120], ecx
mov ecx, dword [esp + 0x4c]
sar ebx, 0xb
mov dword [edx + 0x20], ebx
lea ebx, [ecx + esi]
sub ecx, esi
add edx, 4
sar ecx, 0xb
mov dword [edx + 0xfc], ecx
mov ecx, dword [esp + 0x50]
sar ebx, 0xb
lea esi, [eax + ecx]
sub ecx, eax
mov eax, dword [esp + 0x48]
mov dword [edx + 0x3c], ebx
sar ecx, 0xb
mov dword [edx + 0xdc], ecx
lea ecx, [eax + ebp]
sub eax, ebp
mov ebx, dword [esp + 0x30]
sar eax, 0xb
mov dword [edx + 0xbc], eax
mov eax, dword [esp + 0x38]
sar esi, 0xb
sar eax, 0xb
mov dword [edx + 0x5c], esi
mov esi, dword [esp + 0x2c]
sar ecx, 0xb
mov dword [edx + 0x9c], eax
mov eax, dword [esp + 0x34]
mov dword [edx + 0x7c], ecx
add esi, 2
add ebx, 4
dec eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], eax
jne 0x5518fb
mov edx, dword [esp + 0x204]
lea ebx, [esp + 0x64]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x34], 0xd
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x208]
mov edx, dword [ebx]
mov esi, dword [ebx + 8]
mov ecx, dword [eax]
mov eax, dword [ebx - 0x10]
add ecx, ebp
lea ebp, [esi + edx]
sub edx, esi
mov esi, ebp
shl esi, 6
sub esi, ebp
mov dword [esp + 0x24], ebp
add eax, 0x10
lea esi, [esi + esi*4]
shl eax, 0xd
lea ebp, [ebp + esi*2]
mov dword [esp + 0x1c], eax
mov eax, dword [ebx - 8]
lea esi, [ebp + ebp*2]
mov ebp, dword [esp + 0x1c]
add ebp, edx
lea esi, [esi + esi*4]
mov dword [esp + 0x10], esi
mov esi, edx
shl esi, 5
add esi, edx
lea esi, [esi + esi*2]
lea esi, [ebp + esi*8]
lea ebp, [eax + eax*4]
mov dword [esp + 0x14], esi
lea ebp, [eax + ebp*2]
shl ebp, 6
sub ebp, eax
shl ebp, 4
add esi, ebp
mov ebp, esi
mov esi, eax
add esi, ebp
mov ebp, dword [esp + 0x10]
add esi, ebp
mov dword [esp + 0x3c], esi
mov esi, eax
shl esi, 9
add esi, eax
lea esi, [eax + esi*2]
shl esi, 2
sub esi, ebp
mov ebp, dword [esp + 0x14]
add esi, ebp
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x24]
add ebp, edx
lea esi, [esi + esi*8]
lea esi, [esi + esi*8]
shl esi, 5
mov dword [esp + 0x10], esi
mov esi, edx
shl esi, 5
sub esi, edx
lea esi, [edx + esi*8]
lea esi, [edx + esi*4]
lea esi, [ebp + esi*4]
mov dword [esp + 0x14], esi
mov esi, eax
shl esi, 4
add esi, eax
shl esi, 4
sub esi, eax
shl esi, 5
mov ebp, esi
mov esi, dword [esp + 0x10]
sub ebp, esi
mov esi, dword [esp + 0x14]
add ebp, esi
mov dword [esp + 0x40], ebp
lea ebp, [eax + eax*4]
shl ebp, 7
add ebp, eax
lea ebp, [eax + ebp*8]
shl ebp, 1
sub esi, ebp
mov ebp, dword [esp + 0x10]
add esi, ebp
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x48], esi
lea esi, [ebp + ebp*2]
lea esi, [esi + esi*4]
shl esi, 3
sub esi, ebp
lea esi, [esi + esi*2]
lea esi, [esi + esi*4]
shl esi, 1
mov dword [esp + 0x10], esi
lea esi, [edx + edx*2]
lea ebp, [esi + esi*4]
mov esi, dword [esp + 0x1c]
shl ebp, 8
sub ebp, edx
sub edx, eax
shl ebp, 1
sub ebp, esi
lea esi, [eax*8]
sub esi, eax
mov dword [esp + 0x14], ebp
neg ebp
lea esi, [eax + esi*4]
lea esi, [esi + esi*2]
lea esi, [eax + esi*4]
shl esi, 2
sub ebp, esi
mov esi, dword [esp + 0x10]
sub ebp, esi
mov dword [esp + 0x4c], ebp
lea ebp, [eax + eax*4]
lea ebp, [eax + ebp*8]
lea ebp, [eax + ebp*8]
lea ebp, [ebp + ebp*4]
lea ebp, [eax + ebp*4]
lea eax, [edx + edx*2]
shl eax, 6
add eax, edx
sub esi, ebp
mov ebp, dword [esp + 0x14]
lea eax, [eax + eax*2]
sub esi, ebp
mov dword [esp + 0x50], esi
mov esi, dword [ebx + 0xc]
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x1c]
lea edx, [edx + eax*4]
add eax, edx
mov edx, dword [ebx - 4]
mov dword [esp + 0x38], eax
mov eax, dword [ebx - 0xc]
lea ebp, [edx + eax]
mov ebx, ebp
shl ebx, 4
add ebx, ebp
lea ebx, [ebx + ebx*4]
shl ebx, 1
sub ebx, ebp
lea ebp, [ebp + ebx*4]
mov ebx, dword [esp + 0x18]
shl ebp, 4
mov dword [esp + 0x20], ebp
mov ebp, dword [ebx + 4]
add ebp, eax
lea ebx, [ebp + ebp*4]
shl ebx, 5
sub ebx, ebp
lea ebx, [ebx + ebx*4]
shl ebx, 1
sub ebx, ebp
lea ebp, [esi + eax]
mov dword [esp + 0x28], ebp
lea ebx, [ebx + ebx*2]
shl ebx, 1
mov dword [esp + 0x10], ebx
lea ebx, [ebp + ebp*2]
lea ebx, [ebx + ebx*4]
shl ebx, 8
add ebx, ebp
mov ebp, eax
shl ebp, 7
add ebp, eax
shl ebx, 1
lea ebp, [eax + ebp*4]
mov dword [esp + 0x14], ebx
lea ebp, [eax + ebp*8]
lea ebp, [eax + ebp*4]
sub ebx, ebp
mov ebp, dword [esp + 0x10]
add ebx, ebp
mov ebp, dword [esp + 0x20]
add ebx, ebp
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x18]
mov ebp, dword [ebx + 4]
add ebp, edx
lea ebx, [ebp + ebp*4]
shl ebx, 3
sub ebx, ebp
shl ebx, 1
sub ebx, ebp
neg ebx
lea ebx, [ebx + ebx*8]
shl ebx, 2
sub ebx, ebp
mov ebp, edx
shl ebp, 7
sub ebp, edx
mov dword [esp + 0x1c], ebx
add ebx, edx
lea ebp, [ebp + ebp*2]
lea ebp, [ebp + ebp*8]
lea ebx, [ebx + ebp*2]
mov ebp, dword [esp + 0x20]
add ebp, ebx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x20], ebp
mov ebp, dword [ebx + 4]
lea ebx, [ebp + ebp*4]
shl ebx, 5
sub ebx, ebp
lea ebx, [ebx + ebx*8]
lea ebx, [ebx + ebx*8]
mov ebp, ebx
mov ebx, dword [esp + 0x1c]
sub ebx, ebp
mov ebp, dword [esp + 0x10]
add ebp, ebx
mov dword [esp + 0x10], ebp
lea ebp, [esi + edx]
lea ebx, [ebp + ebp*4]
shl ebx, 5
sub ebx, ebp
lea ebx, [ebx + ebx*4]
shl ebx, 1
sub ebx, ebp
neg ebx
lea ebp, [ebx + ebx*2]
mov ebx, dword [esp + 0x20]
shl ebp, 1
add ebx, ebp
mov dword [esp + 0x20], ebx
mov ebx, esi
shl ebx, 6
sub ebx, esi
shl ebx, 2
sub ebx, esi
lea ebx, [ebx + ebx*8]
shl ebx, 1
sub ebx, esi
lea ebx, [ebp + ebx*4]
mov ebp, dword [esp + 0x14]
add ebp, ebx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x14], ebp
mov ebx, dword [ebx + 4]
lea ebp, [esi + ebx]
mov ebx, ebp
neg ebx
shl ebx, 2
sub ebx, ebp
shl ebx, 2
sub ebx, ebp
shl ebx, 5
sub ebx, ebp
mov ebp, dword [esp + 0x10]
shl ebx, 3
add ebp, ebx
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x14]
add ebp, ebx
mov ebx, dword [esp + 0x28]
imul ebx, ebx, 0xad5
mov dword [esp + 0x28], ebx
lea ebx, [edx + edx*2]
shl ebx, 6
sub ebx, edx
mov dword [esp + 0x14], ebp
lea ebx, [ebx + ebx*4]
shl ebx, 1
sub ebx, edx
shl ebx, 1
mov ebp, ebx
lea ebx, [eax + eax*8]
shl ebx, 4
add ebx, eax
mov dword [esp + 0x30], ebp
lea ebx, [ebx + ebx*8]
lea eax, [eax + ebx*2]
mov ebx, dword [esp + 0x28]
mov ebp, eax
mov eax, dword [esp + 0x30]
sub ebp, eax
add ebp, ebx
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 4]
mov dword [esp + 0x18], eax
sub eax, edx
lea edx, [eax + eax*2]
lea edx, [edx + edx*4]
shl edx, 8
add edx, eax
mov eax, esi
shl eax, 5
shl edx, 1
add eax, esi
mov dword [esp + 0x1c], edx
add ebp, edx
lea edx, [eax + eax*2]
lea eax, [esi + edx*8]
mov edx, dword [esp + 0x18]
lea eax, [eax + eax*8]
shl eax, 1
sub eax, esi
mov esi, eax
mov eax, edx
shl eax, 6
sub eax, edx
lea eax, [eax + eax*4]
lea edx, [eax + eax*4]
mov eax, dword [esp + 0x1c]
shl edx, 1
sub edx, esi
mov esi, dword [esp + 0x3c]
add edx, eax
mov eax, dword [esp + 0x28]
add eax, edx
mov edx, dword [esp + 0x24]
add edx, esi
sar edx, 0x12
and edx, 0x3ff
mov dl, byte [edx + edi]
mov byte [ecx], dl
mov edx, dword [esp + 0x24]
sub esi, edx
sar esi, 0x12
and esi, 0x3ff
mov dl, byte [esi + edi]
mov esi, dword [esp + 0x40]
mov byte [ecx + 0xc], dl
mov edx, dword [esp + 0x20]
add ebx, 0x20
add edx, esi
mov dword [esp + 0x18], ebx
sar edx, 0x12
and edx, 0x3ff
mov dl, byte [edx + edi]
mov byte [ecx + 1], dl
mov edx, dword [esp + 0x20]
sub esi, edx
sar esi, 0x12
and esi, 0x3ff
mov dl, byte [esi + edi]
mov esi, dword [esp + 0x44]
mov byte [ecx + 0xb], dl
mov edx, dword [esp + 0x10]
add edx, esi
sar edx, 0x12
and edx, 0x3ff
mov dl, byte [edx + edi]
mov byte [ecx + 2], dl
mov edx, dword [esp + 0x10]
sub esi, edx
sar esi, 0x12
and esi, 0x3ff
mov dl, byte [esi + edi]
mov esi, dword [esp + 0x4c]
mov byte [ecx + 0xa], dl
mov edx, dword [esp + 0x14]
add edx, esi
sar edx, 0x12
and edx, 0x3ff
mov dl, byte [edx + edi]
mov byte [ecx + 3], dl
mov edx, dword [esp + 0x14]
sub esi, edx
sar esi, 0x12
and esi, 0x3ff
mov dl, byte [esi + edi]
mov esi, dword [esp + 0x50]
mov byte [ecx + 9], dl
lea edx, [esi + ebp]
sub esi, ebp
sar edx, 0x12
and edx, 0x3ff
sar esi, 0x12
mov dl, byte [edx + edi]
and esi, 0x3ff
mov byte [ecx + 4], dl
mov dl, byte [esi + edi]
mov esi, dword [esp + 0x48]
mov byte [ecx + 8], dl
lea edx, [eax + esi]
sub esi, eax
sar edx, 0x12
and edx, 0x3ff
sar esi, 0x12
mov dl, byte [edx + edi]
and esi, 0x3ff
mov byte [ecx + 5], dl
mov al, byte [esi + edi]
mov esi, dword [esp + 0x38]
sar esi, 0x12
and esi, 0x3ff
mov byte [ecx + 7], al
mov eax, dword [esp + 0x34]
mov dl, byte [esi + edi]
mov byte [ecx + 6], dl
mov ecx, dword [esp + 0x2c]
add ecx, 4
dec eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x34], eax
jne 0x551d6e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1e4
ret