Function at 0x6aa110
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x34
mov edi, dword [esp + 0x64]
mov ebp, dword [esp + 0x50]
sub ebp, edx
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x48]
mov esi, dword [eax]
mov dword [esp + 0x28], esi
mov esi, dword [eax + 4]
mov dword [esp + 0x2c], esi
mov eax, dword [eax + 0xc]
test ecx, ecx
mov dword [esp + 0x1c], ebp
je 0x6aa1bb
mov ebx, ecx
mov ecx, dword [ecx]
movzx ecx, word [ecx + ebp*2]
test ecx, ecx
mov dword [esp + 0x14], ebx
je 0x6aa15b
mov esi, dword [ebx + 4]
cmp word [esi + ebp*2], 0
je 0x6aa1c3
cmp edx, 0x102
je 0x6aa506
cmp ecx, edx
jbe 0x6aa506
cmp dword [esp + 0x5c], 0
je 0x6aa1c3
mov esi, dword [esp + 0x14]
mov ebp, dword [esi + 8]
mov esi, dword [esp + 0x1c]
lea esi, [esi*8]
lea esi, [esi + esi*2]
movzx ebx, byte [ebp + esi + 1]
test bl, bl
jne 0x6aa19f
cmp byte [ebp + esi + 2], 0
je 0x6aa813
mov edi, esi
movzx esi, byte [ebp + esi + 0x15]
add esi, 3
cmp esi, edx
mov esi, edi
jae 0x6aa52b
mov ecx, edx
mov edi, dword [esp + 0x64]
jmp 0x6aa1c5
mov dword [esp + 0x14], 0
mov ecx, edx
mov ebp, dword [esp + 0x54]
mov ebx, ebp
mov esi, dword [esp + 0x50]
sub ebx, esi
cmp ebx, 2
ja 0x6aa1e9
mov word [edi], 0
mov eax, dword [esp + 0x60]
mov word [eax], 0
jmp 0x6aab52
mov edi, dword [esp + 0x4c]
mov edx, esi
and edx, 0x7fff
mov dword [esp + 0x30], edx
lea edx, [ecx + esi]
cmp edx, ebp
cmovbe ebx, ecx
lea edx, [edi + esi]
mov dword [esp + 4], edx
lea ecx, [edx + ebx]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x28]
movzx eax, word [ecx + eax*4]
mov ecx, dword [esp + 0x2c]
movzx ecx, word [ecx + eax*2]
sub eax, ecx
lea ebp, [eax + 0x8000]
cmova ebp, eax
mov dword [esp + 0x24], ebx
lea eax, [ebx + edx - 8]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0x2000
mov ax, 1
mov dword [esp + 0x18], 0
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 0x48]
mov esi, ecx
nop word cs:[eax + eax]
cmp ebp, 0x7fff
ja 0x6aa6d5
test ebp, ebp
je 0x6aa2f0
mov dword [esp + 0x20], esi
mov edx, dword [esp + 0x50]
mov ecx, edx
sub ecx, ebp
mov esi, dword [esp + 0x4c]
lea ebx, [esi + ecx]
movzx edi, ax
lea esi, [edi + edx]
cmp esi, dword [esp + 0x54]
jae 0x6aa2a4
mov edx, dword [esp + 4]
movzx edx, byte [edx + edi]
cmp dl, byte [ebx + edi]
jne 0x6aa419
mov edx, dword [esp + 0x48]
mov edi, dword [edx + 0x20]
mov edx, dword [esp + 0x30]
movzx esi, word [edi + edx*2]
cmp si, 3
jb 0x6aa300
mov edx, dword [esp + 4]
movzx edx, byte [edx]
cmp dl, byte [ebx]
jne 0x6aa300
and ecx, 0x7fff
movzx ecx, word [edi + ecx*2]
cmp si, cx
cmovae esi, ecx
movzx ecx, si
mov edx, dword [esp + 0x24]
cmp edx, ecx
cmovb esi, edx
movzx edx, si
mov ecx, dword [esp + 4]
add ecx, edx
add ebx, edx
jmp 0x6aa304
mov dword [esp], eax
jmp 0x6aa468
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x5c]
cmp ecx, dword [esp + 0xc]
jae 0x6aa340
mov esi, dword [esp + 4]
nop word cs:[eax + eax]
mov edx, dword [ecx]
cmp edx, dword [ebx]
jne 0x6aa350
add ecx, 4
add ebx, 4
cmp ecx, dword [esp + 0xc]
jb 0x6aa320
jmp 0x6aa350
mov esi, dword [esp + 4]
nop word cs:[eax + eax]
mov edx, dword [esp + 0x10]
cmp ecx, edx
je 0x6aa370
movzx edx, byte [ecx]
cmp dl, byte [ebx]
jne 0x6aa372
inc ecx
inc ebx
jmp 0x6aa350
mov ecx, edx
mov edx, dword [esp + 0x48]
mov ebx, ecx
sub ebx, esi
mov dword [esp], ebx
cmp ax, bx
jae 0x6aa410
test edi, edi
je 0x6aa42a
mov edx, esi
lea esi, [eax + 1]
sub ecx, edx
inc ecx
lea edx, [eax + 2]
cmp cx, dx
cmovbe ecx, edx
mov edx, ecx
sub edx, eax
add edx, 0xfffffffe
cmp dx, 0x17
jb 0x6aa43b
dec ecx
cmp cx, ax
jbe 0x6aa43b
movzx ebx, dx
inc ebx
mov dword [esp + 0x18], ebx
and ebx, 0xfffffff0
movd xmm0, ebp
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
inc eax
mov ecx, ebx
nop word cs:[eax + eax]
movzx edx, ax
movdqu xmmword [edi + edx*2], xmm0
movdqu xmmword [edi + edx*2 + 0x10], xmm0
add eax, 0x10
add ecx, 0xfffffff0
jne 0x6aa3e0
cmp dword [esp + 0x18], ebx
jne 0x6aa439
mov eax, ebp
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x48]
jmp 0x6aa430
mov dword [esp], eax
mov esi, dword [esp + 0x20]
jmp 0x6aa468
mov dword [esp], eax
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x20]
jmp 0x6aa468
mov eax, ebp
mov dword [esp + 0x18], eax
mov esi, dword [esp + 0x20]
mov ecx, dword [esp]
jmp 0x6aa45b
add esi, ebx
mov ecx, dword [esp]
nop
movzx eax, si
mov word [edi + eax*2], bp
inc esi
cmp si, cx
jbe 0x6aa440
mov eax, ebp
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x20]
movzx eax, cx
cmp dword [esp + 0x24], eax
jbe 0x6aa6d8
mov ecx, dword [edx + 0x10]
movzx eax, si
cmp dword [esp + 0x28], ecx
je 0x6aa4c0
mov ebx, edx
mov edx, dword [edx + 0x20]
mov esi, dword [esp + 0x30]
mov edi, dword [esp]
cmp di, word [edx + esi*2]
jae 0x6aa490
mov edx, ebx
mov edi, dword [esp + 0x5c]
jmp 0x6aa4c0
mov edx, dword [ebx + 0x18]
mov esi, dword [esp + 0x48]
mov esi, dword [esi + 0x1c]
cmp esi, dword [edx + eax*4]
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x5c]
jne 0x6aa4c0
mov esi, edx
mov edx, dword [edx + 0x14]
mov dword [esp + 0x2c], edx
mov edx, esi
mov dword [esp + 0x28], ecx
nop word cs:[eax + eax]
mov ecx, dword [esp + 0x2c]
movzx esi, word [ecx + eax*2]
cmp si, ax
je 0x6aa6d8
movzx ecx, si
mov ebx, edx
mov edx, eax
sub edx, ecx
lea ecx, [edx + 0x8000]
cmp si, ax
cmovb ecx, edx
add ebp, ecx
mov edx, dword [esp + 8]
lea ecx, [edx - 1]
mov eax, dword [esp]
cmp edx, 1
mov edx, ebx
mov dword [esp + 8], ecx
ja 0x6aa260
jmp 0x6aa6d8
cmp dword [esp + 0x5c], 0
je 0x6aa7f0
mov esi, dword [esp + 0x14]
mov ebp, dword [esi + 8]
mov esi, dword [esp + 0x1c]
lea esi, [esi*8]
lea esi, [esi + esi*2]
movzx ebx, byte [ebp + esi + 1]
test bl, bl
jne 0x6aa53a
cmp byte [ebp + esi + 2], 0
je 0x6aa80a
mov ebx, esi
movzx esi, byte [ebp + esi + 0x15]
add esi, 3
mov edi, dword [esp + 0x64]
cmp esi, ecx
jb 0x6aa1c5
cmp ecx, edx
cmova ecx, edx
mov word [edi], cx
movzx edi, byte [ebp + ebx + 1]
test di, di
jne 0x6aa56d
cmp byte [ebp + ebx + 2], 0
je 0x6aa81c
mov eax, ebx
movzx edx, byte [ebp + ebx + 0x15]
add edx, 3
cmp cx, 3
jb 0x6aab3a
mov dword [esp + 0x10], edx
movzx esi, byte [ebp + eax]
lea ecx, [esi + 3]
mov dword [esp + 8], ecx
mov dword [esp], eax
movzx eax, byte [ebp + eax + 2]
shl eax, 8
movzx edi, di
or edi, eax
lea ecx, [esi + 4]
xor ebx, ebx
cmp esi, 0xc
mov edx, dword [esp + 0x5c]
mov dword [esp + 0xc], ebp
jb 0x6aa5f0
mov ebx, ecx
and ebx, 0xfffffff0
movd xmm0, edi
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
lea eax, [ecx + ecx]
and eax, 0xffffffe0
xor ebp, ebp
nop
movdqu xmmword [edx + ebp], xmm0
movdqu xmmword [edx + ebp + 0x10], xmm0
add ebp, 0x20
cmp eax, ebp
jne 0x6aa5d0
cmp ecx, ebx
mov ebp, dword [esp + 0xc]
je 0x6aa5f9
nop word [eax + eax]
mov word [edx + ebx*2], di
inc ebx
cmp ecx, ebx
jne 0x6aa5f0
mov eax, dword [esp + 8]
cmp eax, dword [esp + 0x10]
je 0x6aab3a
mov eax, dword [esp]
movzx eax, byte [ebp + eax + 3]
mov dword [esp + 8], eax
lea edi, [eax + 3]
cmp ecx, edi
ja 0x6aa689
mov eax, dword [esp + 0xc]
mov edx, dword [esp]
movzx ebx, word [eax + edx + 4]
mov edx, dword [esp + 8]
sub edx, esi
cmp edx, 0x10
jb 0x6aa668
mov ebp, edx
and ebp, 0xfffffff0
movd xmm0, ebx
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
mov eax, dword [esp + 0x5c]
lea esi, [eax + esi*2]
add esi, 0x18
xor eax, eax
movdqu xmmword [esi + eax*2 - 0x10], xmm0
movdqu xmmword [esi + eax*2], xmm0
add eax, 0x10
cmp ebp, eax
jne 0x6aa650
cmp edx, ebp
je 0x6aa689
add ecx, ebp
mov eax, dword [esp + 8]
add eax, 4
mov edx, dword [esp + 0x5c]
nop word cs:[eax + eax]
mov word [edx + ecx*2], bx
inc ecx
cmp eax, ecx
jne 0x6aa680
cmp edi, dword [esp + 0x10]
mov ebp, dword [esp + 0xc]
je 0x6aab3a
mov ecx, dword [esp + 8]
lea esi, [ecx + 4]
mov eax, dword [esp]
movzx eax, byte [ebp + eax + 6]
mov dword [esp + 4], eax
lea edi, [eax + 3]
cmp esi, edi
ja 0x6aa87e
mov eax, dword [esp]
movzx ebx, word [ebp + eax + 7]
mov ebp, dword [esp + 4]
sub ebp, ecx
cmp ebp, 0x10
jae 0x6aa82f
mov ebp, dword [esp + 0xc]
jmp 0x6aa86a
mov dword [esp], eax
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x6aa701
mov eax, dword [ecx]
mov edx, dword [esp + 0x1c]
cmp word [eax + edx*2], 0
je 0x6aa710
mov eax, dword [ecx + 4]
cmp word [eax + edx*2], 0
setne al
test edi, edi
jne 0x6aa71a
jmp 0x6aa7d6
xor eax, eax
mov edx, dword [esp + 0x1c]
test edi, edi
jne 0x6aa71a
jmp 0x6aa7d6
mov al, 1
test edi, edi
je 0x6aa7d6
cmp dword [esp + 0x24], 0x102
jne 0x6aa7d6
test ecx, ecx
je 0x6aa7d6
test al, al
jne 0x6aa7d6
xor ebx, ebx
mov eax, dword [esp + 0x18]
mov esi, dword [esp]
cmp si, 3
cmovb eax, ebx
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 4]
mov word [ecx + edx*2], ax
mov eax, esi
cmovb eax, ebx
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx]
mov word [ecx + edx*2], ax
mov ecx, dword [esp + 0x14]
jb 0x6aa7d6
lea eax, [edx + edx*2]
shl eax, 3
add eax, dword [ecx + 8]
movzx ebp, word [esp]
mov ecx, 3
xor esi, esi
jmp 0x6aa787
inc ecx
mov edi, ecx
cmp edi, ebp
ja 0x6aa7cb
cmp ecx, ebp
je 0x6aa79a
mov edx, dword [esp + 0x5c]
movzx edi, word [edx + ecx*2]
cmp di, word [edx + ecx*2 + 2]
je 0x6aa780
mov edx, ecx
add dl, 0xfd
lea edi, [esi + esi*2]
mov byte [eax + edi], dl
mov ebx, dword [esp + 0x5c]
movzx edx, byte [ebx + ecx*2]
mov byte [eax + edi + 1], dl
movzx edx, byte [ebx + ecx*2 + 1]
mov byte [eax + edi + 2], dl
inc esi
cmp esi, 7
ja 0x6aa7d6
lea edi, [ecx + 1]
mov ebx, ecx
mov ecx, edi
cmp edi, ebp
jbe 0x6aa787
cmp esi, 7
ja 0x6aa7d6
add bl, 0xfd
mov byte [eax + 0x15], bl
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x18]
mov word [eax], cx
mov eax, dword [esp + 0x64]
mov ecx, dword [esp]
mov word [eax], cx
jmp 0x6aab52
cmp ecx, edx
cmova ecx, edx
mov word [edi], cx
mov ecx, dword [esp + 0x1c]
add ecx, ecx
mov eax, dword [esp + 0x14]
add ecx, dword [eax + 4]
jmp 0x6aab48
mov ebx, esi
xor esi, esi
jmp 0x6aa544
mov edi, esi
xor esi, esi
jmp 0x6aa1a9
mov eax, ebx
xor edx, edx
cmp cx, 3
jae 0x6aa581
jmp 0x6aab3a
mov edx, ebp
and edx, 0xfffffff0
movd xmm0, ebx
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
mov eax, dword [esp + 0x5c]
lea eax, [eax + ecx*2]
add eax, 0x18
xor ecx, ecx
movdqu xmmword [eax + ecx*2 - 0x10], xmm0
movdqu xmmword [eax + ecx*2], xmm0
add ecx, 0x10
cmp edx, ecx
jne 0x6aa84e
cmp ebp, edx
mov ebp, dword [esp + 0xc]
je 0x6aa87e
add esi, edx
mov eax, dword [esp + 4]
add eax, 4
mov ecx, dword [esp + 0x5c]
mov word [ecx + esi*2], bx
inc esi
cmp eax, esi
jne 0x6aa875
mov edx, dword [esp + 0x10]
cmp edi, edx
je 0x6aab3a
mov ecx, dword [esp + 4]
lea esi, [ecx + 4]
mov eax, dword [esp]
movzx eax, byte [ebp + eax + 9]
mov dword [esp + 8], eax
lea edi, [eax + 3]
cmp esi, edi
ja 0x6aa912
mov eax, dword [esp]
movzx ebx, word [ebp + eax + 0xa]
mov ebp, dword [esp + 8]
sub ebp, ecx
cmp ebp, 0x10
jae 0x6aa8bd
mov ebp, dword [esp + 0xc]
jmp 0x6aa8fe
mov eax, ebp
and eax, 0xfffffff0
movd xmm0, ebx
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
mov edx, ecx
mov ecx, dword [esp + 0x5c]
lea ecx, [ecx + edx*2]
add ecx, 0x18
xor edx, edx
movdqu xmmword [ecx + edx*2 - 0x10], xmm0
movdqu xmmword [ecx + edx*2], xmm0
add edx, 0x10
cmp eax, edx
jne 0x6aa8de
cmp ebp, eax
mov ebp, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
je 0x6aa912
add esi, eax
mov eax, dword [esp + 8]
add eax, 4
mov ecx, dword [esp + 0x5c]
mov word [ecx + esi*2], bx
inc esi
cmp eax, esi
jne 0x6aa909
cmp edi, edx
je 0x6aab3a
mov ecx, dword [esp + 8]
lea esi, [ecx + 4]
mov eax, dword [esp]
movzx eax, byte [ebp + eax + 0xc]
mov dword [esp + 4], eax
lea edi, [eax + 3]
cmp esi, edi
ja 0x6aa9a2
mov eax, dword [esp]
movzx ebx, word [ebp + eax + 0xd]
mov ebp, dword [esp + 4]
sub ebp, ecx
cmp ebp, 0x10
jae 0x6aa94d
mov ebp, dword [esp + 0xc]
jmp 0x6aa98e
mov eax, ebp
and eax, 0xfffffff0
movd xmm0, ebx
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
mov edx, ecx
mov ecx, dword [esp + 0x5c]
lea edx, [ecx + edx*2]
add edx, 0x18
xor ecx, ecx
movdqu xmmword [edx + ecx*2 - 0x10], xmm0
movdqu xmmword [edx + ecx*2], xmm0
add ecx, 0x10
cmp eax, ecx
jne 0x6aa96e
cmp ebp, eax
mov ebp, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
je 0x6aa9a2
add esi, eax
mov eax, dword [esp + 4]
add eax, 4
mov ecx, dword [esp + 0x5c]
mov word [ecx + esi*2], bx
inc esi
cmp eax, esi
jne 0x6aa999
cmp edi, edx
je 0x6aab3a
mov ecx, dword [esp + 4]
lea esi, [ecx + 4]
mov eax, dword [esp]
movzx eax, byte [ebp + eax + 0xf]
mov dword [esp + 8], eax
lea edi, [eax + 3]
cmp esi, edi
ja 0x6aaa32
mov eax, dword [esp]
movzx ebx, word [ebp + eax + 0x10]
mov ebp, dword [esp + 8]
sub ebp, ecx
cmp ebp, 0x10
jae 0x6aa9dd
mov ebp, dword [esp + 0xc]
jmp 0x6aaa1e
mov eax, ebp
and eax, 0xfffffff0
movd xmm0, ebx
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
mov edx, ecx
mov ecx, dword [esp + 0x5c]
lea ecx, [ecx + edx*2]
add ecx, 0x18
xor edx, edx
movdqu xmmword [ecx + edx*2 - 0x10], xmm0
movdqu xmmword [ecx + edx*2], xmm0
add edx, 0x10
cmp eax, edx
jne 0x6aa9fe
cmp ebp, eax
mov ebp, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
je 0x6aaa32
add esi, eax
mov eax, dword [esp + 8]
add eax, 4
mov ecx, dword [esp + 0x5c]
mov word [ecx + esi*2], bx
inc esi
cmp eax, esi
jne 0x6aaa29
cmp edi, edx
je 0x6aab3a
mov ecx, dword [esp + 8]
lea esi, [ecx + 4]
mov eax, dword [esp]
movzx eax, byte [ebp + eax + 0x12]
mov dword [esp + 4], eax
lea edi, [eax + 3]
cmp esi, edi
ja 0x6aaac4
mov eax, dword [esp]
movzx ebx, word [ebp + eax + 0x13]
mov eax, dword [esp + 4]
mov ebp, eax
sub ebp, ecx
cmp ebp, 0x10
jae 0x6aaa6f
mov ebp, dword [esp + 0xc]
jmp 0x6aaab4
mov eax, ebp
and eax, 0xfffffff0
movd xmm0, ebx
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
mov edx, ecx
mov ecx, dword [esp + 0x5c]
lea edx, [ecx + edx*2]
add edx, 0x18
xor ecx, ecx
movdqu xmmword [edx + ecx*2 - 0x10], xmm0
movdqu xmmword [edx + ecx*2], xmm0
add ecx, 0x10
cmp eax, ecx
jne 0x6aaa90
cmp ebp, eax
mov ebp, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
je 0x6aaac4
add esi, eax
mov eax, dword [esp + 4]
add eax, 4
mov ecx, dword [esp + 0x5c]
mov word [ecx + esi*2], bx
inc esi
cmp eax, esi
jne 0x6aaabb
cmp edi, edx
je 0x6aab3a
mov eax, dword [esp + 4]
add eax, 4
mov ecx, dword [esp]
movzx edx, byte [ebp + ecx + 0x15]
lea ecx, [edx + 3]
cmp eax, ecx
ja 0x6aab3a
mov ecx, dword [esp]
movzx esi, word [ebp + ecx + 0x16]
mov edi, edx
mov ebp, dword [esp + 4]
sub edi, ebp
cmp edi, 0x10
jb 0x6aab2a
mov ebx, edi
and ebx, 0xfffffff0
movd xmm0, esi
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
mov ecx, dword [esp + 0x5c]
lea ecx, [ecx + ebp*2]
add ecx, 0x18
xor ebp, ebp
movdqu xmmword [ecx + ebp*2 - 0x10], xmm0
movdqu xmmword [ecx + ebp*2], xmm0
add ebp, 0x10
cmp ebx, ebp
jne 0x6aab12
cmp edi, ebx
je 0x6aab3a
add eax, ebx
add edx, 4
mov ecx, dword [esp + 0x5c]
mov word [ecx + eax*2], si
inc eax
cmp edx, eax
jne 0x6aab2d
mov eax, dword [esp + 0x64]
movzx eax, word [eax]
mov ecx, dword [esp + 0x5c]
lea ecx, [ecx + eax*2]
movzx eax, word [ecx]
mov ecx, dword [esp + 0x60]
mov word [ecx], ax
add esp, 0x34
pop esi
pop edi
pop ebx
pop ebp
ret