Function at 0x5aad80
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x54
cmp dword [ebp + 0xc], 0
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov dword [esp + 0x18], edx
mov edi, dword [ebx + 4]
mov dword [esp + 0x28], ecx
je 0x5aadfd
mov al, byte [edx + 1]
lea ecx, [edx + 1]
cmp al, 0x80
jae 0x5aadb1
movzx ecx, al
mov al, 1
jmp 0x5aadc2
lea edx, [esp + 0x30]
call fcn.0058ccd0
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
movzx esi, byte [edx]
movzx eax, al
inc eax
mov dword [esp + 0x30], esi
mov dword [esp + 0x2c], eax
cmp ecx, 0x80
jb 0x5aadea
add ecx, 0xfffffff4
shr ecx, 1
add esi, ecx
mov ecx, 1
add edi, 0x28
jmp 0x5aae2e
movzx ecx, byte [ecx + 0x7c3f80]
add esi, ecx
mov ecx, 1
add edi, 0x28
jmp 0x5aae2e
mov al, byte [edx]
cmp al, 0x80
jae 0x5aae0a
movzx ecx, al
mov al, 1
jmp 0x5aae1f
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x30]
call fcn.0058ccd0
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
movzx eax, al
mov esi, ecx
mov dword [esp + 0x30], ecx
xor ecx, ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], esi
cmp esi, dword [esp + 0x28]
jbe 0x5aae67
push 0x7e931c
push 0x13f70
push 0x7e74a4
push 0x7e7488
push 0xb
call fcn.0058b3c0
add esp, 0x14
mov byte [ebx + 0xb], 0xb
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [ecx*4 + 0x14]
mov dword [esp + 0x24], ecx
movzx ecx, word [edi + 8]
lea ebx, [eax + edx]
mov al, byte [ebx]
mov byte [esp + 0x13], al
test cl, 0x24
je 0x5ab119
movzx ebx, al
mov dword [esp + 0x1c], ebx
cmp ebx, 0xa
jae 0x5ab0db
test al, al
je 0x5ab3f4
lea ecx, [esi + edx]
cmp ebx, 7
jne 0x5aaed3
lea eax, [esp + 0x38]
mov edx, ebx
push eax
call fcn.005aa4a0
movsd xmm1, qword [esp + 0x3c]
add esp, 4
push dword [edi + 4]
push dword [edi]
call fcn.005aab80
mov ecx, eax
add esp, 8
neg ecx
jmp 0x5ab373
cmp ebx, 6
ja case.default.0x5aaedc
jmp dword [ebx*4 + 0x5ab484]
movsx eax, byte [ecx]
cdq
mov ecx, eax
mov eax, edx
jmp 0x5ab0b3
movsx eax, byte [ecx]
movzx ecx, byte [ecx + 1]
shl eax, 8
or eax, ecx
cdq
mov ecx, eax
mov eax, edx
jmp 0x5ab0b3
movzx eax, byte [ecx + 1]
movsx ecx, byte [ecx]
shl eax, 8
shl ecx, 0x10
or eax, ecx
movzx ecx, byte [esi + edx + 2]
or eax, ecx
cdq
mov ecx, eax
mov eax, edx
jmp 0x5ab0b3
movzx eax, byte [ecx]
movzx ecx, byte [ecx + 1]
shl eax, 8
or eax, ecx
movzx ecx, byte [esi + edx + 2]
shl eax, 8
or eax, ecx
movzx ecx, byte [esi + edx + 3]
shl eax, 8
or eax, ecx
cdq
mov ecx, eax
mov eax, edx
jmp 0x5ab0b3
movzx eax, byte [ecx + 2]
cdq
mov ecx, eax
mov eax, edx
shld eax, ecx, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
shl ecx, 8
movzx eax, byte [esi + eax + 3]
cdq
or ecx, eax
mov eax, dword [esp + 0x14]
or eax, edx
shld eax, ecx, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
shl ecx, 8
movzx eax, byte [esi + eax + 4]
cdq
or ecx, eax
mov eax, dword [esp + 0x14]
or eax, edx
shld eax, ecx, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
shl ecx, 8
movzx eax, byte [esi + eax + 5]
cdq
or dword [esp + 0x14], edx
or ecx, eax
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x18]
movsx eax, byte [esi + ecx]
movzx ecx, byte [esi + ecx + 1]
shl eax, 8
or eax, ecx
mov ecx, dword [esp + 0x34]
cdq
add ecx, 0
adc dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
jmp 0x5ab0b3
movzx eax, byte [ecx]
cdq
mov ecx, eax
mov eax, edx
shld eax, ecx, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
shl ecx, 8
movzx eax, byte [esi + eax + 1]
cdq
or ecx, eax
mov eax, dword [esp + 0x14]
or eax, edx
shld eax, ecx, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
shl ecx, 8
movzx eax, byte [esi + eax + 2]
cdq
or ecx, eax
mov eax, dword [esp + 0x14]
or eax, edx
shld eax, ecx, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
shl ecx, 8
movzx eax, byte [esi + eax + 3]
cdq
or ecx, eax
mov eax, dword [esp + 0x14]
or eax, edx
shld eax, ecx, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
shl ecx, 8
movzx eax, byte [esi + eax + 4]
cdq
or ecx, eax
mov eax, dword [esp + 0x14]
or eax, edx
shld eax, ecx, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
shl ecx, 8
movzx eax, byte [esi + eax + 5]
cdq
or ecx, eax
mov eax, dword [esp + 0x14]
or eax, edx
shld eax, ecx, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
shl ecx, 8
movzx eax, byte [esi + eax + 6]
cdq
or ecx, eax
mov eax, dword [esp + 0x14]
or eax, edx
shld eax, ecx, 8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
shl ecx, 8
movzx eax, byte [esi + eax + 7]
cdq
or ecx, eax
mov eax, dword [esp + 0x14]
or eax, edx
jmp 0x5ab0b3
lea ecx, [ebx - 8]
xor eax, eax
mov edx, dword [edi]
cmp eax, dword [edi + 4]
jl 0x5ab3f4
jg 0x5ab0db
cmp ecx, edx
jb 0x5ab3f4
cmp eax, dword [edi + 4]
jg 0x5ab0db
jl 0x5ab37b
cmp ecx, edx
jbe 0x5ab37b
mov ecx, 1
mov eax, dword [ebp + 8]
mov edx, dword [esp + 0x20]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
movzx eax, byte [eax + edx]
test eax, eax
je 0x5ab478
test al, 2
je 0x5ab476
test ebx, ebx
je 0x5ab46a
test byte [edi + 8], 1
jne 0x5ab46a
xor edx, edx
jmp 0x5ab46f
test cl, 8
je 0x5ab188
movzx ebx, al
mov dword [esp + 0x1c], ebx
cmp ebx, 0xa
jae 0x5ab0db
test al, al
je 0x5ab3f4
lea eax, [esp + 0x38]
lea ecx, [esi + edx]
mov edx, ebx
push eax
call fcn.005aa4a0
movsd xmm0, qword [edi]
add esp, 4
cmp byte [esp + 0x13], 7
jne 0x5ab16e
movsd xmm1, qword [esp + 0x38]
comisd xmm0, xmm1
ja 0x5ab3f4
comisd xmm1, xmm0
ja 0x5ab0db
jmp 0x5ab37b
push dword [esp + 0x3c]
movaps xmm1, xmm0
push dword [esp + 0x3c]
call fcn.005aab80
add esp, 8
mov ecx, eax
jmp 0x5ab373
test cl, 2
je 0x5ab27a
cmp al, 0x80
jae 0x5ab19e
movzx ebx, al
mov dword [esp + 0x1c], ebx
jmp 0x5ab1ad
lea edx, [esp + 0x1c]
mov ecx, ebx
call fcn.0058ccd0
mov ebx, dword [esp + 0x1c]
cmp ebx, 0xc
jb 0x5ab3f4
test bl, 1
je 0x5ab0db
lea ecx, [ebx - 0xc]
shr ecx, 1
mov dword [esp + 0x34], ecx
mov dword [esp + 0x44], ecx
lea eax, [ecx + esi]
cmp eax, dword [esp + 0x28]
ja 0x5ab3fc
mov edx, dword [ebp + 8]
mov edx, dword [edx]
movzx eax, word [edx + 8]
cmp eax, dword [esp + 0x20]
jle 0x5ab3fc
mov eax, dword [esp + 0x24]
cmp dword [eax + edx], 0
je 0x5ab23b
mov al, byte [edx + 4]
lea ecx, [esp + 0x38]
mov byte [esp + 0x42], al
mov eax, dword [edx + 0xc]
mov dword [esp + 0x58], eax
mov eax, 2
mov word [esp + 0x40], ax
mov eax, dword [esp + 0x18]
add eax, esi
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 8]
add eax, 0xb
push eax
mov eax, dword [esp + 0x28]
push dword [eax + edx]
mov edx, edi
call fcn.005aa8e0
add esp, 8
mov ecx, eax
jmp 0x5ab373
mov esi, dword [edi + 0xc]
cmp ecx, esi
mov edx, dword [edi + 0x10]
cmovl esi, ecx
mov ecx, dword [esp + 0x18]
add ecx, dword [esp + 0x14]
sub esi, 4
jb 0x5ab315
nop word [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x5ab31a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x5ab260
jmp 0x5ab315
test cl, 0x10
je 0x5ab365
cmp al, 0x80
jae 0x5ab290
movzx ebx, al
mov dword [esp + 0x1c], ebx
jmp 0x5ab2a3
lea edx, [esp + 0x1c]
mov ecx, ebx
call fcn.0058ccd0
mov ebx, dword [esp + 0x1c]
movzx ecx, word [edi + 8]
cmp ebx, 0xc
jb 0x5ab3f4
test bl, 1
jne 0x5ab3f4
lea edx, [ebx - 0xc]
shr edx, 1
mov dword [esp + 0x34], edx
lea eax, [edx + esi]
cmp eax, dword [esp + 0x28]
ja 0x5ab42a
test ecx, 0x4000
mov ecx, dword [esp + 0x18]
je 0x5ab2f0
lea ecx, [esi + ecx]
call fcn.005aaa60
test eax, eax
je 0x5ab0db
mov ecx, edx
sub ecx, dword [edi]
jmp 0x5ab373
mov esi, dword [edi + 0xc]
cmp edx, esi
cmovl esi, edx
add ecx, dword [esp + 0x14]
mov edx, dword [edi + 0x10]
sub esi, 4
jb 0x5ab315
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x5ab31a
add ecx, 4
add edx, 4
sub esi, 4
jae 0x5ab304
cmp esi, 0xfffffffc
je 0x5ab34e
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x5ab347
cmp esi, 0xfffffffd
je 0x5ab34e
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x5ab347
cmp esi, 0xfffffffe
je 0x5ab34e
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x5ab347
cmp esi, 0xffffffff
je 0x5ab34e
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x5ab34e
sbb ecx, ecx
or ecx, 1
jmp 0x5ab350
xor ecx, ecx
test ecx, ecx
jne 0x5ab0e0
mov ecx, dword [esp + 0x34]
sub ecx, dword [edi + 0xc]
mov esi, dword [esp + 0x14]
jmp 0x5ab373
xor ecx, ecx
movzx ebx, al
test al, al
mov dword [esp + 0x1c], ebx
setne cl
test ecx, ecx
jne 0x5ab0e0
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x20]
add dword [esp + 0x24], 4
inc ecx
mov dword [esp + 0x20], ecx
movzx eax, word [eax + 8]
cmp ecx, eax
je 0x5ab458
add edi, 0x28
cmp ebx, 0x80
jb 0x5ab3aa
lea eax, [ebx - 0xc]
shr eax, 1
jmp 0x5ab3b1
movzx eax, byte [ebx + 0x7c3f80]
add esi, eax
shr ebx, 7
xor ecx, ecx
mov dword [esp + 0x14], esi
mov eax, ebx
mov edx, 1
or eax, ecx
je 0x5ab3d5
shrd ebx, ecx, 7
inc edx
shr ecx, 7
mov eax, ebx
or eax, ecx
jne 0x5ab3c7
mov eax, dword [esp + 0x2c]
add eax, edx
mov dword [esp + 0x2c], eax
cmp eax, dword [esp + 0x30]
jae 0x5ab458
cmp esi, dword [esp + 0x28]
ja 0x5ab458
mov edx, dword [esp + 0x18]
jmp 0x5aae72
or ecx, 0xffffffff
jmp 0x5ab0e0
push 0x7e931c
push 0x13fbd
push 0x7e74a4
push 0x7e7488
push 0xb
call fcn.0058b3c0
mov eax, dword [ebp + 8]
add esp, 0x14
mov byte [eax + 0xb], 0xb
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x7e931c
push 0x13fdb
push 0x7e74a4
push 0x7e7488
push 0xb
call fcn.0058b3c0
mov eax, dword [ebp + 8]
add esp, 0x14
mov byte [eax + 0xb], 0xb
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
mov byte [eax + 0xe], 1
movsx eax, byte [eax + 0xa]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, 1
and eax, 1
cmp eax, edx
je 0x5ab478
neg ecx
pop edi
pop esi
mov eax, ecx
pop ebx
mov esp, ebp
pop ebp
ret