Function at 0x4af000
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
push ebx
push edi
push esi
push eax
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov edx, edi
and edx, 3
mov ecx, esi
and ecx, 3
cmp ecx, edx
jne 0x4af127
test edx, edx
je 0x4af074
test eax, eax
je 0x4af49d
movzx ecx, byte [esi]
mov ebp, dword [esp + 0x18]
mov byte [ebp], cl
lea edi, [ebp + 1]
lea ebx, [esi + 1]
lea ecx, [eax - 1]
cmp edx, 3
je 0x4af078
test ecx, ecx
je 0x4af078
movzx ecx, byte [esi + 1]
mov byte [ebp + 1], cl
lea edi, [ebp + 2]
lea ebx, [esi + 2]
lea ecx, [eax - 2]
cmp edx, 2
je 0x4af078
test ecx, ecx
je 0x4af078
movzx ecx, byte [esi + 2]
mov byte [ebp + 2], cl
lea edi, [ebp + 3]
add esi, 3
add eax, 0xfffffffd
mov ecx, eax
mov ebx, esi
cmp ecx, 0x21
jb 0x4af0bc
nop dword [eax]
mov eax, dword [ebx]
mov dword [edi], eax
mov eax, dword [ebx + 4]
mov dword [edi + 4], eax
mov eax, dword [ebx + 8]
mov dword [edi + 8], eax
mov eax, dword [ebx + 0xc]
mov dword [edi + 0xc], eax
mov eax, dword [ebx + 0x10]
mov dword [edi + 0x10], eax
mov eax, dword [ebx + 0x14]
mov dword [edi + 0x14], eax
mov eax, dword [ebx + 0x18]
mov dword [edi + 0x18], eax
mov eax, dword [ebx + 0x1c]
mov dword [edi + 0x1c], eax
add edi, 0x20
add ebx, 0x20
add ecx, 0xffffffe0
cmp ecx, 0x20
ja 0x4af080
cmp ecx, 5
jb 0x4af2c0
lea ebp, [ecx - 5]
cmp ebp, 0x1c
jb 0x4af2cd
mov eax, edi
sub eax, ebx
cmp eax, 0x20
jb 0x4af2cd
shr ebp, 2
inc ebp
mov dword [esp], ebp
and ebp, 0xfffffff8
lea eax, [ebp*4]
lea edx, [ebx + ebp*4]
lea esi, [edi + ebp*4]
sub ecx, eax
xor eax, eax
nop dword [eax]
movups xmm0, xmmword [ebx + eax*4]
movups xmm1, xmmword [ebx + eax*4 + 0x10]
movups xmmword [edi + eax*4], xmm0
movups xmmword [edi + eax*4 + 0x10], xmm1
add eax, 8
cmp ebp, eax
jne 0x4af100
cmp dword [esp], ebp
jne 0x4af2e0
jmp 0x4af2f2
mov ecx, edi
cmp eax, 0x21
jb 0x4af232
nop word cs:[eax + eax]
movzx edx, byte [esi]
mov byte [ecx], dl
movzx edx, byte [esi + 1]
mov byte [ecx + 1], dl
movzx edx, byte [esi + 2]
mov byte [ecx + 2], dl
movzx edx, byte [esi + 3]
mov byte [ecx + 3], dl
movzx edx, byte [esi + 4]
mov byte [ecx + 4], dl
movzx edx, byte [esi + 5]
mov byte [ecx + 5], dl
movzx edx, byte [esi + 6]
mov byte [ecx + 6], dl
movzx edx, byte [esi + 7]
mov byte [ecx + 7], dl
movzx edx, byte [esi + 8]
mov byte [ecx + 8], dl
movzx edx, byte [esi + 9]
mov byte [ecx + 9], dl
movzx edx, byte [esi + 0xa]
mov byte [ecx + 0xa], dl
movzx edx, byte [esi + 0xb]
mov byte [ecx + 0xb], dl
movzx edx, byte [esi + 0xc]
mov byte [ecx + 0xc], dl
movzx edx, byte [esi + 0xd]
mov byte [ecx + 0xd], dl
movzx edx, byte [esi + 0xe]
mov byte [ecx + 0xe], dl
movzx edx, byte [esi + 0xf]
mov byte [ecx + 0xf], dl
movzx edx, byte [esi + 0x10]
mov byte [ecx + 0x10], dl
movzx edx, byte [esi + 0x11]
mov byte [ecx + 0x11], dl
movzx edx, byte [esi + 0x12]
mov byte [ecx + 0x12], dl
movzx edx, byte [esi + 0x13]
mov byte [ecx + 0x13], dl
movzx edx, byte [esi + 0x14]
mov byte [ecx + 0x14], dl
movzx edx, byte [esi + 0x15]
mov byte [ecx + 0x15], dl
movzx edx, byte [esi + 0x16]
mov byte [ecx + 0x16], dl
movzx edx, byte [esi + 0x17]
mov byte [ecx + 0x17], dl
movzx edx, byte [esi + 0x18]
mov byte [ecx + 0x18], dl
movzx edx, byte [esi + 0x19]
mov byte [ecx + 0x19], dl
movzx edx, byte [esi + 0x1a]
mov byte [ecx + 0x1a], dl
movzx edx, byte [esi + 0x1b]
mov byte [ecx + 0x1b], dl
movzx edx, byte [esi + 0x1c]
mov byte [ecx + 0x1c], dl
movzx edx, byte [esi + 0x1d]
mov byte [ecx + 0x1d], dl
movzx edx, byte [esi + 0x1e]
mov byte [ecx + 0x1e], dl
movzx edx, byte [esi + 0x1f]
mov byte [ecx + 0x1f], dl
add ecx, 0x20
add esi, 0x20
add eax, 0xffffffe0
cmp eax, 0x20
ja 0x4af140
jmp 0x4af23a
test eax, eax
je 0x4af49d
cmp eax, 8
jb 0x4af387
mov edx, ecx
sub edx, esi
cmp edx, 0x20
jb 0x4af387
xor edx, edx
cmp eax, 0x20
jb 0x4af289
mov edx, eax
and edx, 0xffffffe0
xor edi, edi
nop
movups xmm0, xmmword [esi + edi]
movups xmm1, xmmword [esi + edi + 0x10]
movups xmmword [ecx + edi], xmm0
movups xmmword [ecx + edi + 0x10], xmm1
add edi, 0x20
cmp edx, edi
jne 0x4af260
cmp eax, edx
je 0x4af49d
test al, 0x18
je 0x4af380
mov ebx, eax
and ebx, 0xfffffff8
lea edi, [esi + ebx]
mov dword [esp], ebx
add ebx, ecx
mov ebp, eax
and ebp, 7
nop dword [eax + eax]
movsd xmm0, qword [esi + edx]
movsd qword [ecx + edx], xmm0
add edx, 8
cmp dword [esp], edx
jne 0x4af2a0
cmp eax, dword [esp]
jne 0x4af38d
jmp 0x4af49d
mov edx, ebx
mov esi, edi
test ecx, ecx
jne 0x4af2f2
jmp 0x4af49d
mov edx, ebx
mov esi, edi
nop word cs:[eax + eax]
mov eax, dword [edx]
mov dword [esi], eax
add esi, 4
add edx, 4
add ecx, 0xfffffffc
cmp ecx, 4
ja 0x4af2e0
cmp ecx, 8
jb 0x4af419
mov eax, esi
sub eax, edx
cmp eax, 0x20
jb 0x4af419
xor eax, eax
cmp ecx, 0x20
jb 0x4af34a
mov eax, ecx
and eax, 0xffffffe0
xor edi, edi
nop word cs:[eax + eax]
movups xmm0, xmmword [edx + edi]
movups xmm1, xmmword [edx + edi + 0x10]
movups xmmword [esi + edi], xmm0
movups xmmword [esi + edi + 0x10], xmm1
add edi, 0x20
cmp eax, edi
jne 0x4af320
cmp ecx, eax
je 0x4af49d
test cl, 0x18
je 0x4af412
mov ebx, ecx
and ebx, 0xfffffff8
lea edi, [edx + ebx]
mov dword [esp], ebx
add ebx, esi
mov ebp, ecx
and ebp, 7
nop dword [eax]
movsd xmm0, qword [edx + eax]
movsd qword [esi + eax], xmm0
add eax, 8
cmp dword [esp], eax
jne 0x4af360
cmp ecx, dword [esp]
jne 0x4af41f
jmp 0x4af49d
and eax, 0x1f
add ecx, edx
add esi, edx
mov edi, esi
mov ebx, ecx
mov ebp, eax
lea esi, [ebp - 1]
mov edx, ebp
and edx, 7
je 0x4af3b2
xor ecx, ecx
nop dword [eax]
movzx eax, byte [edi + ecx]
mov byte [ebx + ecx], al
inc ecx
cmp edx, ecx
jne 0x4af3a0
add edi, ecx
add ebx, ecx
sub ebp, ecx
cmp esi, 7
jb 0x4af49d
xor eax, eax
nop dword [eax]
movzx ecx, byte [edi + eax]
mov byte [ebx + eax], cl
movzx ecx, byte [edi + eax + 1]
mov byte [ebx + eax + 1], cl
movzx ecx, byte [edi + eax + 2]
mov byte [ebx + eax + 2], cl
movzx ecx, byte [edi + eax + 3]
mov byte [ebx + eax + 3], cl
movzx ecx, byte [edi + eax + 4]
mov byte [ebx + eax + 4], cl
movzx ecx, byte [edi + eax + 5]
mov byte [ebx + eax + 5], cl
movzx ecx, byte [edi + eax + 6]
mov byte [ebx + eax + 6], cl
movzx ecx, byte [edi + eax + 7]
mov byte [ebx + eax + 7], cl
add eax, 8
cmp ebp, eax
jne 0x4af3c0
jmp 0x4af49d
and ecx, 0x1f
add esi, eax
add edx, eax
mov edi, edx
mov ebx, esi
mov ebp, ecx
lea esi, [ebp - 1]
mov edx, ebp
and edx, 7
je 0x4af442
xor ecx, ecx
nop dword [eax + eax]
movzx eax, byte [edi + ecx]
mov byte [ebx + ecx], al
inc ecx
cmp edx, ecx
jne 0x4af430
add edi, ecx
add ebx, ecx
sub ebp, ecx
cmp esi, 7
jb 0x4af49d
xor eax, eax
nop dword [eax]
movzx ecx, byte [edi + eax]
mov byte [ebx + eax], cl
movzx ecx, byte [edi + eax + 1]
mov byte [ebx + eax + 1], cl
movzx ecx, byte [edi + eax + 2]
mov byte [ebx + eax + 2], cl
movzx ecx, byte [edi + eax + 3]
mov byte [ebx + eax + 3], cl
movzx ecx, byte [edi + eax + 4]
mov byte [ebx + eax + 4], cl
movzx ecx, byte [edi + eax + 5]
mov byte [ebx + eax + 5], cl
movzx ecx, byte [edi + eax + 6]
mov byte [ebx + eax + 6], cl
movzx ecx, byte [edi + eax + 7]
mov byte [ebx + eax + 7], cl
add eax, 8
cmp ebp, eax
jne 0x4af450
mov eax, dword [esp + 0x18]
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret