Function at 0x5a9450
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
mov edx, dword [ebp + 8]
mov eax, ecx
push ebx
mov ebx, dword [ebp + 0x10]
lea ecx, [esp + 0x20]
push esi
push edi
push dword [ebp + 0xc]
cmp word [ebx + 2], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
je 0x5a97e7
call fcn.005a8e00
mov ecx, eax
add esp, 4
cmp ecx, 0xffffff88
ja 0x5a97de
movzx esi, word [ebx]
or edi, 0xffffffff
mov eax, dword [esp + 0x2c]
mov ecx, eax
mov ebx, dword [esp + 0x28]
and ecx, 0x1f
shl ebx, cl
add eax, esi
mov ecx, edi
shr ebx, 1
sub ecx, esi
mov dword [esp + 0x2c], eax
and ecx, 0x1f
shr ebx, cl
lea ecx, [esp + 0x28]
mov dword [esp + 0x14], ebx
call fcn.005a8f00
mov eax, dword [esp + 0x2c]
sub edi, esi
mov edx, dword [esp + 0x28]
mov ecx, eax
and ecx, 0x1f
and edi, 0x1f
shl edx, cl
add eax, esi
shr edx, 1
mov ecx, edi
shr edx, cl
lea ecx, [esp + 0x28]
mov dword [esp + 0x18], edx
mov dword [esp + 0x2c], eax
call fcn.005a8f00
lea ecx, [esp + 0x28]
call fcn.005a8f00
mov esi, dword [esp + 0xc]
test eax, eax
jne 0x5a963a
jmp 0x5a9510
mov eax, dword [esp + 0x10]
add eax, 0xfc
cmp esi, eax
jae 0x5a963a
mov eax, dword [ebp + 0x10]
mov edi, dword [esp + 0x28]
mov edx, edi
mov eax, dword [eax + ebx*4 + 4]
mov esi, eax
mov ebx, dword [esp + 0x2c]
mov ecx, ebx
and ecx, 0x1f
shr esi, 0x18
shl edx, cl
add ebx, esi
mov ecx, esi
mov esi, dword [esp + 0xc]
neg ecx
and ecx, 0x1f
shr edx, cl
movzx ecx, ax
add ecx, edx
shr eax, 0x10
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x14], ecx
mov ecx, ebx
mov byte [esi], al
and ecx, 0x1f
mov eax, dword [esp + 0x18]
shl edi, cl
mov eax, dword [edx + eax*4 + 4]
mov edx, eax
shr edx, 0x18
mov ecx, edx
add ebx, edx
neg ecx
mov dword [esp + 0x2c], ebx
and ecx, 0x1f
shr edi, cl
movzx ecx, ax
add ecx, edi
shr eax, 0x10
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x28]
mov byte [esi + 1], al
call fcn.005a8f00
test eax, eax
jg 0x5a9633
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x10]
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov edx, edi
mov eax, dword [ecx + eax*4 + 4]
mov esi, eax
mov ecx, ebx
shr esi, 0x18
and ecx, 0x1f
add ebx, esi
shl edx, cl
mov ecx, esi
mov esi, dword [esp + 0xc]
neg ecx
and ecx, 0x1f
shr edx, cl
movzx ecx, ax
add ecx, edx
shr eax, 0x10
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 0x10]
mov byte [esi + 2], al
mov eax, dword [esp + 0x18]
mov eax, dword [ecx + eax*4 + 4]
mov edx, eax
mov ecx, ebx
shr edx, 0x18
and ecx, 0x1f
add ebx, edx
shl edi, cl
mov ecx, edx
neg ecx
mov dword [esp + 0x2c], ebx
and ecx, 0x1f
shr edi, cl
movzx ecx, ax
add ecx, edi
shr eax, 0x10
mov byte [esi + 3], al
add esi, 4
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x28]
mov dword [esp + 0xc], esi
call fcn.005a8f00
mov ebx, dword [esp + 0x14]
test eax, eax
je 0x5a9510
jmp 0x5a963a
add esi, 2
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x10]
add eax, 0xfd
cmp esi, eax
ja 0x5a97d9
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x1c], edx
jmp 0x5a9660
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + eax*4 + 4]
mov ecx, ebx
and ecx, 0x1f
mov esi, eax
shl edx, cl
shr esi, 0x18
mov ecx, esi
add ebx, esi
neg ecx
and ecx, 0x1f
shr edx, cl
movzx ecx, ax
add ecx, edx
shr eax, 0x10
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
mov byte [ecx], al
inc ecx
mov dword [esp + 0xc], ecx
cmp ebx, 0x20
ja 0x5a96f8
mov esi, dword [esp + 0x34]
lea eax, [esi + 4]
mov dword [esp + 0x24], eax
cmp edi, eax
jb 0x5a96bf
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov edx, dword [edi]
mov dword [esp + 0x1c], edx
jmp 0x5a9717
cmp edi, esi
je 0x5a9713
mov edx, ebx
mov dword [esp + 0x20], 0
shr edx, 3
mov eax, edi
sub eax, edx
cmp eax, esi
jae 0x5a96e4
mov edx, edi
mov dword [esp + 0x20], 1
sub edx, esi
imul eax, edx, 0xfffffff8
sub edi, edx
mov edx, dword [edi]
add ebx, eax
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x20], 3
jne 0x5a9717
mov eax, dword [esp + 0x18]
mov edx, dword [ebp + 0x10]
mov al, byte [edx + eax*4 + 6]
mov byte [ecx], al
inc ecx
sub ecx, dword [esp + 0x10]
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add eax, 0xfd
cmp ecx, eax
ja 0x5a97d9
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + eax*4 + 4]
mov ecx, ebx
and ecx, 0x1f
mov esi, eax
shl edx, cl
shr esi, 0x18
mov ecx, esi
add ebx, esi
neg ecx
and ecx, 0x1f
shr edx, cl
movzx ecx, ax
add ecx, edx
shr eax, 0x10
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
mov byte [ecx], al
inc ecx
mov dword [esp + 0xc], ecx
cmp ebx, 0x20
ja 0x5a97bb
cmp edi, dword [esp + 0x24]
jb 0x5a977e
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov edx, dword [edi]
mov dword [esp + 0x1c], edx
jmp 0x5a97c8
mov esi, dword [esp + 0x34]
cmp edi, esi
je 0x5a97c4
mov edx, ebx
mov dword [esp + 0x20], 0
shr edx, 3
mov eax, edi
sub eax, edx
cmp eax, esi
jae 0x5a97a7
mov edx, edi
mov dword [esp + 0x20], 1
sub edx, esi
imul eax, edx, 0xfffffff8
sub edi, edx
mov edx, dword [edi]
add ebx, eax
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x20], 3
jne 0x5a97c8
mov eax, dword [esp + 0x14]
jmp 0x5a96fc
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add eax, 0xfd
cmp ecx, eax
jbe 0x5a9660
mov ecx, 0xffffffba
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.005a8e00
mov ecx, eax
add esp, 4
cmp ecx, 0xffffff88
ja 0x5a97de
movzx esi, word [ebx]
or edi, 0xffffffff
mov eax, dword [esp + 0x2c]
mov ecx, eax
mov ebx, dword [esp + 0x28]
and ecx, 0x1f
shl ebx, cl
add eax, esi
mov ecx, edi
shr ebx, 1
sub ecx, esi
mov dword [esp + 0x2c], eax
and ecx, 0x1f
shr ebx, cl
lea ecx, [esp + 0x28]
mov dword [esp + 0x18], ebx
call fcn.005a8f00
mov eax, dword [esp + 0x2c]
mov ecx, eax
mov edx, dword [esp + 0x28]
and ecx, 0x1f
shl edx, cl
add eax, esi
mov ecx, edi
shr edx, 1
sub ecx, esi
mov dword [esp + 0x2c], eax
and ecx, 0x1f
shr edx, cl
lea ecx, [esp + 0x28]
mov dword [esp + 0x14], edx
call fcn.005a8f00
lea ecx, [esp + 0x28]
call fcn.005a8f00
mov esi, dword [esp + 0xc]
test eax, eax
jne 0x5a99a6
jmp 0x5a9870
mov eax, dword [esp + 0x10]
add eax, 0xfc
cmp esi, eax
jae 0x5a99a6
mov eax, dword [ebp + 0x10]
mov edi, dword [esp + 0x28]
mov edx, edi
mov eax, dword [eax + ebx*4 + 4]
mov esi, eax
mov ebx, dword [esp + 0x2c]
mov ecx, ebx
and ecx, 0x1f
shr esi, 0x18
shl edx, cl
add ebx, esi
or ecx, 0xffffffff
shr edx, 1
sub ecx, esi
mov esi, dword [esp + 0xc]
and ecx, 0x1f
shr edx, cl
movzx ecx, ax
add ecx, edx
shr eax, 0x10
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp + 0x10]
mov byte [esi], al
mov eax, dword [esp + 0x14]
mov eax, dword [ecx + eax*4 + 4]
mov ecx, ebx
and ecx, 0x1f
mov edx, eax
shl edi, cl
or ecx, 0xffffffff
shr edx, 0x18
sub ecx, edx
shr edi, 1
and ecx, 0x1f
add ebx, edx
shr edi, cl
movzx ecx, ax
add ecx, edi
shr eax, 0x10
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], ebx
mov byte [esi + 1], al
call fcn.005a8f00
test eax, eax
jg 0x5a999f
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 0x10]
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov edx, edi
mov eax, dword [ecx + eax*4 + 4]
mov esi, eax
mov ecx, ebx
shr esi, 0x18
and ecx, 0x1f
add ebx, esi
shl edx, cl
or ecx, 0xffffffff
sub ecx, esi
shr edx, 1
mov esi, dword [esp + 0xc]
and ecx, 0x1f
shr edx, cl
movzx ecx, ax
add ecx, edx
shr eax, 0x10
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp + 0x10]
mov byte [esi + 2], al
mov eax, dword [esp + 0x14]
mov eax, dword [ecx + eax*4 + 4]
mov ecx, ebx
and ecx, 0x1f
mov edx, eax
shl edi, cl
or ecx, 0xffffffff
shr edx, 0x18
sub ecx, edx
shr edi, 1
and ecx, 0x1f
add ebx, edx
shr edi, cl
movzx ecx, ax
add ecx, edi
shr eax, 0x10
mov byte [esi + 3], al
add esi, 4
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0xc], esi
call fcn.005a8f00
mov ebx, dword [esp + 0x18]
test eax, eax
je 0x5a9870
jmp 0x5a99a6
add esi, 2
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x10]
add eax, 0xfd
cmp esi, eax
ja 0x5a97d9
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x1c], edx
jmp 0x5a99d0
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + eax*4 + 4]
mov ecx, ebx
and ecx, 0x1f
mov esi, eax
shl edx, cl
or ecx, 0xffffffff
shr esi, 0x18
sub ecx, esi
shr edx, 1
and ecx, 0x1f
add ebx, esi
shr edx, cl
movzx ecx, ax
add ecx, edx
shr eax, 0x10
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0xc]
mov byte [ecx], al
inc ecx
mov dword [esp + 0xc], ecx
cmp ebx, 0x20
ja 0x5a9a6b
mov esi, dword [esp + 0x34]
lea eax, [esi + 4]
mov dword [esp + 0x24], eax
cmp edi, eax
jb 0x5a9a32
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov edx, dword [edi]
mov dword [esp + 0x1c], edx
jmp 0x5a9a8a
cmp edi, esi
je 0x5a9a86
mov edx, ebx
mov dword [esp + 0x20], 0
shr edx, 3
mov eax, edi
sub eax, edx
cmp eax, esi
jae 0x5a9a57
mov edx, edi
mov dword [esp + 0x20], 1
sub edx, esi
imul eax, edx, 0xfffffff8
sub edi, edx
mov edx, dword [edi]
add ebx, eax
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x20], 3
jne 0x5a9a8a
mov eax, dword [esp + 0x14]
mov edx, dword [ebp + 0x10]
mov al, byte [edx + eax*4 + 6]
mov byte [ecx], al
inc ecx
sub ecx, dword [esp + 0x10]
mov eax, ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add eax, 0xfd
cmp ecx, eax
ja 0x5a97d9
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + eax*4 + 4]
mov ecx, ebx
and ecx, 0x1f
mov esi, eax
shl edx, cl
or ecx, 0xffffffff
shr esi, 0x18
sub ecx, esi
shr edx, 1
and ecx, 0x1f
add ebx, esi
shr edx, cl
movzx ecx, ax
add ecx, edx
shr eax, 0x10
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0xc]
mov byte [ecx], al
inc ecx
mov dword [esp + 0xc], ecx
cmp ebx, 0x20
ja 0x5a9b31
cmp edi, dword [esp + 0x24]
jb 0x5a9af4
mov eax, ebx
shr eax, 3
sub edi, eax
and ebx, 7
mov edx, dword [edi]
mov dword [esp + 0x1c], edx
jmp 0x5a9b3e
mov esi, dword [esp + 0x34]
cmp edi, esi
je 0x5a9b3a
mov edx, ebx
mov dword [esp + 0x20], 0
shr edx, 3
mov eax, edi
sub eax, edx
cmp eax, esi
jae 0x5a9b1d
mov edx, edi
mov dword [esp + 0x20], 1
sub edx, esi
imul eax, edx, 0xfffffff8
sub edi, edx
mov edx, dword [edi]
add ebx, eax
mov dword [esp + 0x1c], edx
cmp dword [esp + 0x20], 3
jne 0x5a9b3e
mov eax, dword [esp + 0x18]
jmp 0x5a9a6f
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
add eax, 0xfd
cmp ecx, eax
jbe 0x5a99d0
pop edi
mov ecx, 0xffffffba
pop esi
mov eax, ecx
pop ebx
mov esp, ebp
pop ebp
ret