Function at 0x8c5b50
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x38
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x8c6390
mov edx, dword fs:[0]
mov dword [ebp - 0x18], edx
mov dword fs:[0], eax
mov esi, dword [ecx]
mov eax, dword [ecx + 4]
sub eax, esi
sar eax, 3
imul edi, eax, 0xaaaaaaab
inc edi
mov dword [ebp - 0x30], ecx
mov eax, dword [ecx + 8]
sub eax, esi
sar eax, 3
imul eax, eax, 0xaaaaaaab
mov edx, eax
shr edx, 1
mov ecx, 0xaaaaaaa
sub ecx, edx
add edx, eax
cmp edx, edi
mov dword [ebp - 0x44], edi
cmovbe edx, edi
cmp eax, ecx
mov eax, 0xaaaaaaa
cmova edx, eax
cmp byte [0xa8c591], 0
cmovne edx, eax
cmp edx, 0xaaaaaab
jae 0x8c61e6
lea eax, [edx*8]
lea eax, [eax + eax*2]
cmp edx, 0xab
mov dword [ebp - 0x3c], edx
jb 0x8c5c0c
cmp edx, 0xaaaaaaa
je 0x8c61eb
add eax, 0x23
push eax
call fcn.0091d7fd
add esp, 4
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x8c5c1f
test edx, edx
je 0x8c5c1d
push eax
call fcn.0091d7fd
add esp, 4
mov ecx, eax
jmp 0x8c5c1f
xor ecx, ecx
nop
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
sub edx, esi
mov esi, edi
mov dword [ecx + edx + 0x10], 0
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x40], edx
mov dword [ecx + edx + 0x14], 0
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x34], eax
cmp dword [edi + 0x14], 0x10
jb 0x8c5c4e
mov esi, dword [esi]
mov dword [ebp - 0x20], esi
mov ecx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x40]
lea edx, [ecx + esi]
mov edi, dword [ebp - 0x34]
cmp edi, 0xf
nop
mov dword [ebp - 0x24], edx
ja 0x8c5ce2
nop
mov ecx, dword [ebp - 0x20]
movzx eax, byte [ecx]
mov byte [edx], al
movzx eax, byte [ecx + 1]
mov byte [edx + 1], al
movzx eax, byte [ecx + 2]
mov byte [edx + 2], al
movzx eax, byte [ecx + 3]
mov byte [edx + 3], al
movzx eax, byte [ecx + 4]
mov byte [edx + 4], al
movzx eax, byte [ecx + 5]
mov byte [edx + 5], al
movzx eax, byte [ecx + 6]
mov byte [edx + 6], al
movzx eax, byte [ecx + 7]
mov byte [edx + 7], al
movzx eax, byte [ecx + 8]
mov byte [edx + 8], al
movzx eax, byte [ecx + 9]
mov byte [edx + 9], al
movzx eax, byte [ecx + 0xa]
mov byte [edx + 0xa], al
movzx eax, byte [ecx + 0xb]
mov byte [edx + 0xb], al
movzx eax, byte [ecx + 0xc]
mov byte [edx + 0xc], al
movzx eax, byte [ecx + 0xd]
mov byte [edx + 0xd], al
movzx eax, byte [ecx + 0xe]
mov byte [edx + 0xe], al
movzx eax, byte [ecx + 0xf]
mov byte [edx + 0xf], al
mov ecx, 0xf
jmp 0x8c5e30
mov eax, edi
or eax, 0xf
test edi, edi
mov edx, 0x7fffffff
cmovns edx, eax
lea eax, [ecx + esi]
add eax, 0x18
mov dword [ebp - 0x38], eax
cmp edx, 0xfff
mov dword [ebp - 0x2c], edx
jb 0x8c5d25
lea eax, [edx + 0x24]
mov dword [ebp - 0x10], 0
push eax
call fcn.0091d7fd
add esp, 4
mov ecx, eax
add eax, 0x23
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x8c5d38
lea eax, [edx + 1]
mov dword [ebp - 0x10], 0
push eax
call fcn.0091d7fd
add esp, 4
mov ecx, dword [ebp - 0x24]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x34]
cmp ecx, 0xffffffff
je 0x8c5e2a
inc ecx
xor edx, edx
cmp ecx, 8
jb 0x8c5dc6
mov esi, eax
sub esi, dword [ebp - 0x20]
cmp esi, 0x20
jb 0x8c5dc6
xor edx, edx
cmp ecx, 0x20
jb 0x8c5d97
mov edx, ecx
and edx, 0xffffffe0
xor esi, esi
mov edi, dword [ebp - 0x20]
nop dword [eax]
nop
movups xmm0, xmmword [edi + esi]
movups xmm1, xmmword [edi + esi + 0x10]
movups xmmword [eax + esi], xmm0
movups xmmword [eax + esi + 0x10], xmm1
add esi, 0x20
cmp edx, esi
jne 0x8c5d70
cmp ecx, edx
je 0x8c5e2a
test cl, 0x18
je 0x8c5dc6
mov esi, edx
mov edx, ecx
and edx, 0xfffffff8
mov edi, dword [ebp - 0x20]
nop word cs:[eax + eax]
nop
movsd xmm0, qword [edi + esi]
movsd qword [eax + esi], xmm0
add esi, 8
cmp edx, esi
jne 0x8c5db0
cmp ecx, edx
je 0x8c5e2a
mov esi, dword [ebp - 0x34]
sub esi, edx
mov dword [ebp - 0x38], esi
mov edi, ecx
and edi, 3
je 0x8c5dec
mov esi, dword [ebp - 0x20]
nop dword [eax + eax]
nop
movzx ebx, byte [esi + edx]
mov byte [eax + edx], bl
inc edx
dec edi
jne 0x8c5de0
cmp dword [ebp - 0x38], 3
jb 0x8c5e2a
mov esi, dword [ebp - 0x20]
nop word cs:[eax + eax]
nop
movzx ebx, byte [esi + edx]
mov byte [eax + edx], bl
movzx ebx, byte [esi + edx + 1]
mov byte [eax + edx + 1], bl
movzx ebx, byte [esi + edx + 2]
mov byte [eax + edx + 2], bl
movzx ebx, byte [esi + edx + 3]
mov byte [eax + edx + 3], bl
add edx, 4
cmp ecx, edx
jne 0x8c5e00
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x2c]
nop
mov eax, dword [ebp - 0x34]
mov dword [edx + 0x10], eax
mov dword [edx + 0x14], ecx
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edi, dword [ebp + 8]
cmp ecx, edi
je 0x8c60a0
cmp eax, edi
mov esi, dword [ebp - 0x28]
je 0x8c5f6b
xor ecx, ecx
nop word [eax + eax]
mov dword [esi + ecx + 0x10], 0
mov dword [esi + ecx + 0x14], 0
movzx edx, byte [eax + ecx]
mov byte [esi + ecx], dl
movzx edx, byte [eax + ecx + 1]
mov byte [esi + ecx + 1], dl
movzx edx, byte [eax + ecx + 2]
mov byte [esi + ecx + 2], dl
movzx edx, byte [eax + ecx + 3]
mov byte [esi + ecx + 3], dl
movzx edx, byte [eax + ecx + 4]
mov byte [esi + ecx + 4], dl
movzx edx, byte [eax + ecx + 5]
mov byte [esi + ecx + 5], dl
movzx edx, byte [eax + ecx + 6]
mov byte [esi + ecx + 6], dl
movzx edx, byte [eax + ecx + 7]
mov byte [esi + ecx + 7], dl
movzx edx, byte [eax + ecx + 8]
mov byte [esi + ecx + 8], dl
movzx edx, byte [eax + ecx + 9]
mov byte [esi + ecx + 9], dl
movzx edx, byte [eax + ecx + 0xa]
mov byte [esi + ecx + 0xa], dl
movzx edx, byte [eax + ecx + 0xb]
mov byte [esi + ecx + 0xb], dl
movzx edx, byte [eax + ecx + 0xc]
mov byte [esi + ecx + 0xc], dl
movzx edx, byte [eax + ecx + 0xd]
mov byte [esi + ecx + 0xd], dl
movzx edx, byte [eax + ecx + 0xe]
mov byte [esi + ecx + 0xe], dl
movzx edx, byte [eax + ecx + 0xf]
mov byte [esi + ecx + 0xf], dl
movzx edx, byte [eax + ecx + 0x10]
mov byte [esi + ecx + 0x10], dl
movzx edx, byte [eax + ecx + 0x11]
mov byte [esi + ecx + 0x11], dl
movzx edx, byte [eax + ecx + 0x12]
mov byte [esi + ecx + 0x12], dl
movzx edx, byte [eax + ecx + 0x13]
mov byte [esi + ecx + 0x13], dl
movzx edx, byte [eax + ecx + 0x14]
mov byte [esi + ecx + 0x14], dl
movzx edx, byte [eax + ecx + 0x15]
mov byte [esi + ecx + 0x15], dl
movzx edx, byte [eax + ecx + 0x16]
mov byte [esi + ecx + 0x16], dl
movzx edx, byte [eax + ecx + 0x17]
mov byte [esi + ecx + 0x17], dl
mov dword [eax + ecx + 0x10], 0
mov dword [eax + ecx + 0x14], 0xf
mov byte [eax + ecx], 0
lea edx, [eax + ecx]
add edx, 0x18
add ecx, 0x18
cmp edx, edi
jne 0x8c5e60
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 4]
cmp eax, edi
je 0x8c61be
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x40]
add ecx, edx
add ecx, 0x2f
xor edx, edx
nop word cs:[eax + eax]
mov dword [ecx + edx - 7], 0
mov dword [ecx + edx - 3], 0
movzx ebx, byte [edi + edx]
mov byte [ecx + edx - 0x17], bl
movzx ebx, byte [edi + edx + 1]
mov byte [ecx + edx - 0x16], bl
movzx ebx, byte [edi + edx + 2]
mov byte [ecx + edx - 0x15], bl
movzx ebx, byte [edi + edx + 3]
mov byte [ecx + edx - 0x14], bl
movzx ebx, byte [edi + edx + 4]
mov byte [ecx + edx - 0x13], bl
movzx ebx, byte [edi + edx + 5]
mov byte [ecx + edx - 0x12], bl
movzx ebx, byte [edi + edx + 6]
mov byte [ecx + edx - 0x11], bl
movzx ebx, byte [edi + edx + 7]
mov byte [ecx + edx - 0x10], bl
movzx ebx, byte [edi + edx + 8]
mov byte [ecx + edx - 0xf], bl
movzx ebx, byte [edi + edx + 9]
mov byte [ecx + edx - 0xe], bl
movzx ebx, byte [edi + edx + 0xa]
mov byte [ecx + edx - 0xd], bl
movzx ebx, byte [edi + edx + 0xb]
mov byte [ecx + edx - 0xc], bl
movzx ebx, byte [edi + edx + 0xc]
mov byte [ecx + edx - 0xb], bl
movzx ebx, byte [edi + edx + 0xd]
mov byte [ecx + edx - 0xa], bl
movzx ebx, byte [edi + edx + 0xe]
mov byte [ecx + edx - 9], bl
movzx ebx, byte [edi + edx + 0xf]
mov byte [ecx + edx - 8], bl
movzx ebx, byte [edi + edx + 0x10]
mov byte [ecx + edx - 7], bl
movzx ebx, byte [edi + edx + 0x11]
mov byte [ecx + edx - 6], bl
movzx ebx, byte [edi + edx + 0x12]
mov byte [ecx + edx - 5], bl
movzx ebx, byte [edi + edx + 0x13]
mov byte [ecx + edx - 4], bl
movzx ebx, byte [edi + edx + 0x14]
mov byte [ecx + edx - 3], bl
movzx ebx, byte [edi + edx + 0x15]
mov byte [ecx + edx - 2], bl
movzx ebx, byte [edi + edx + 0x16]
mov byte [ecx + edx - 1], bl
movzx ebx, byte [edi + edx + 0x17]
mov byte [ecx + edx], bl
mov dword [edi + edx + 0x10], 0
mov dword [edi + edx + 0x14], 0xf
mov byte [edi + edx], 0
lea esi, [edi + edx]
add esi, 0x18
add edx, 0x18
cmp esi, eax
jne 0x8c5f90
jmp 0x8c61be
cmp eax, ecx
je 0x8c61be
xor edx, edx
nop word [eax + eax]
mov esi, dword [ebp - 0x28]
mov dword [esi + edx + 0x10], 0
mov dword [esi + edx + 0x14], 0
movzx ebx, byte [eax + edx]
mov byte [esi + edx], bl
movzx ebx, byte [eax + edx + 1]
mov byte [esi + edx + 1], bl
movzx ebx, byte [eax + edx + 2]
mov byte [esi + edx + 2], bl
movzx ebx, byte [eax + edx + 3]
mov byte [esi + edx + 3], bl
movzx ebx, byte [eax + edx + 4]
mov byte [esi + edx + 4], bl
movzx ebx, byte [eax + edx + 5]
mov byte [esi + edx + 5], bl
movzx ebx, byte [eax + edx + 6]
mov byte [esi + edx + 6], bl
movzx ebx, byte [eax + edx + 7]
mov byte [esi + edx + 7], bl
movzx ebx, byte [eax + edx + 8]
mov byte [esi + edx + 8], bl
movzx ebx, byte [eax + edx + 9]
mov byte [esi + edx + 9], bl
movzx ebx, byte [eax + edx + 0xa]
mov byte [esi + edx + 0xa], bl
movzx ebx, byte [eax + edx + 0xb]
mov byte [esi + edx + 0xb], bl
movzx ebx, byte [eax + edx + 0xc]
mov byte [esi + edx + 0xc], bl
movzx ebx, byte [eax + edx + 0xd]
mov byte [esi + edx + 0xd], bl
movzx ebx, byte [eax + edx + 0xe]
mov byte [esi + edx + 0xe], bl
movzx ebx, byte [eax + edx + 0xf]
mov byte [esi + edx + 0xf], bl
movzx ebx, byte [eax + edx + 0x10]
mov byte [esi + edx + 0x10], bl
movzx ebx, byte [eax + edx + 0x11]
mov byte [esi + edx + 0x11], bl
movzx ebx, byte [eax + edx + 0x12]
mov byte [esi + edx + 0x12], bl
movzx ebx, byte [eax + edx + 0x13]
mov byte [esi + edx + 0x13], bl
movzx ebx, byte [eax + edx + 0x14]
mov byte [esi + edx + 0x14], bl
movzx ebx, byte [eax + edx + 0x15]
mov byte [esi + edx + 0x15], bl
movzx ebx, byte [eax + edx + 0x16]
mov byte [esi + edx + 0x16], bl
movzx ebx, byte [eax + edx + 0x17]
mov byte [esi + edx + 0x17], bl
mov dword [eax + edx + 0x10], 0
mov dword [eax + edx + 0x14], 0xf
mov byte [eax + edx], 0
lea esi, [eax + edx]
add esi, 0x18
add edx, 0x18
cmp esi, ecx
jne 0x8c60b0
nop
mov ecx, dword [ebp - 0x30]
push dword [ebp - 0x3c]
push dword [ebp - 0x44]
push dword [ebp - 0x28]
call fcn.008c5480
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
mov eax, dword [ebp - 0x24]
add esp, 0x38
pop esi
pop edi
pop ebx
pop ebp
ret 8
call fcn.0066aec0
call fcn.0066aec0
push ebp
sub esp, 0xc
add ebp, 0xc
mov dword [ebp - 0x1c], esp
nop
mov esi, dword [ebp - 0x30]
mov ecx, esi
mov eax, dword [ebp - 0x38]
push eax
push eax
call fcn.008c5310
mov ecx, esi
push dword [ebp - 0x3c]
push dword [ebp - 0x28]
call fcn.008c53e0
mov dword [ebp - 0x10], 1
push 0
push 0
call fcn.0093533b
int3