Function at 0x100b2230
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x58
push esi
mov esi, ecx
push edi
mov edi, edx
mov dword [esp + 0x20], esi
mov cl, byte [esi + 0x12]
cmp cl, 2
je 0x100b239d
movsx eax, cl
sub eax, 1
jne 0x100b2926
cmp cl, 1
jne 0x100b2926
mov ecx, dword [ebp + 0x24]
movzx edx, byte [ecx + 0xc0]
movzx eax, byte [ecx + 0xc1]
or edx, 0xffffff00
shl edx, 8
or edx, eax
movzx eax, byte [ecx + 0xc2]
shl edx, 8
xor ecx, ecx
or edx, eax
mov eax, edi
neg eax
mov dword [esp + 0x30], edx
test edi, edi
cmovns eax, ecx
test edi, edi
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0xc]
cmovns ecx, edi
mov edi, dword [esi + 4]
sub eax, ecx
cmp edi, eax
mov dword [esp + 0x34], ecx
cmovge edi, eax
mov eax, dword [esi]
xor edx, edx
mov dword [esp + 0x18], edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], edx
test eax, eax
jle 0x100b2926
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
sub ecx, dword [ebp + 0x20]
neg eax
shl eax, 2
dec ecx
imul ecx, dword [ebp + 0xc]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x1c]
lea eax, [eax + ecx*4]
mov dword [esp + 0x1c], eax
nop
mov eax, dword [ebp + 0x20]
add eax, edx
cmp eax, dword [ebp + 0x10]
jae 0x100b2380
mov eax, dword [esi + 8]
test eax, eax
jns 0x100b2314
mov eax, dword [esi]
mov ecx, dword [esi + 0xc]
add eax, edx
imul eax, dword [esi + 8]
sub ecx, eax
jmp 0x100b231c
mov ecx, edx
imul ecx, eax
add ecx, dword [esi + 0xc]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x24], ecx
cmp esi, edi
jge 0x100b237c
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x34]
lea edi, [eax + ecx*4]
mov eax, esi
and eax, 0x80000007
jns 0x100b2341
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, 7
mov edx, 1
sub ecx, eax
shl edx, cl
mov eax, esi
test eax, eax
jns 0x100b2358
add eax, 7
sar eax, 3
mov ecx, dword [esp + 0x24]
test byte [eax + ecx], dl
je 0x100b236a
mov eax, dword [esp + 0x30]
mov dword [edi], eax
inc esi
add edi, 4
cmp esi, dword [esp + 0x18]
jl 0x100b2333
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
inc edx
add dword [esp + 0x1c], eax
mov dword [esp + 0x14], edx
cmp edx, dword [esp + 0x28]
jl 0x100b22f0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x24]
xor ecx, ecx
test edi, edi
cmovns ecx, edi
mov edi, dword [esi]
mov edx, dword [eax + 0xc0]
mov eax, dword [ebp + 0xc]
sub eax, ecx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esi + 4]
cmp ecx, eax
mov dword [esp + 0x2c], edx
cmovge ecx, eax
mov dword [esp + 0x4c], edi
mov eax, edx
mov dword [esp + 0x40], ecx
shr eax, 0x10
mov ecx, edx
shr ecx, 8
mov dword [esp + 0x34], eax
mov eax, dword [0x101899a0]
mov dword [esp + 0x30], ecx
cmp eax, 0xffffffff
jne 0x100b23ff
push 0xa
call dword [sym.imp.KERNEL32.dll_IsProcessorFeaturePresent]
mov edx, dword [esp + 0x2c]
neg eax
sbb eax, eax
neg eax
mov dword [0x101899a0], eax
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x30]
test eax, eax
je 0x100b2450
mov eax, dword [esp + 0x34]
xorps xmm6, xmm6
movaps xmm4, xmmword [0x10168ba0]
movaps xmm5, xmmword [0x10168bb0]
movzx eax, al
movzx ecx, cl
movzx edx, dl
pinsrw xmm4, eax, 0
pinsrw xmm4, ecx, 1
pinsrw xmm4, edx, 2
pinsrw xmm4, eax, 4
pinsrw xmm4, ecx, 5
pinsrw xmm4, edx, 6
jmp 0x100b245f
movaps xmm4, xmmword [esp + 0x50]
movaps xmm6, xmmword [esp + 0x50]
movaps xmm5, xmmword [esp + 0x50]
xor edx, edx
mov dword [esp + 0x24], edx
test edi, edi
jle 0x100b2926
mov ecx, dword [ebp + 0x14]
neg ecx
mov dword [esp + 0x48], ecx
mov ecx, dword [ebp + 0x10]
mov edi, ecx
sub edi, dword [ebp + 0x20]
dec edi
imul edi, dword [ebp + 0x14]
mov dword [esp + 0x38], edi
mov eax, dword [ebp + 0x20]
add eax, edx
cmp eax, ecx
jge 0x100b2926
mov ecx, dword [esi + 8]
test ecx, ecx
jns 0x100b24a9
mov eax, dword [esi]
add eax, edx
imul eax, ecx
mov ecx, dword [esi + 0xc]
sub ecx, eax
jmp 0x100b24af
imul ecx, edx
add ecx, dword [esi + 0xc]
mov eax, dword [esp + 0x3c]
lea edi, [edi + eax*4]
mov eax, dword [esp + 0x40]
add edi, dword [ebp + 0x1c]
cmp dword [esp + 0x44], 1
mov dword [esp + 0x18], edi
lea eax, [edi + eax*4]
mov dword [esp + 0x1c], eax
jne 0x100b279b
lea edx, [edi + 0x10]
mov dword [esp + 0x28], edx
cmp edx, eax
jae 0x100b2690
mov dl, byte [ecx]
mov byte [esp + 0xe], dl
test dl, dl
mov edx, dword [esp + 0x28]
jne 0x100b2506
cmp byte [ecx + 1], 0
jne 0x100b2506
cmp byte [ecx + 2], 0
jne 0x100b2506
cmp byte [ecx + 3], 0
je 0x100b267d
movzx edx, byte [esp + 0xe]
movaps xmm0, xmm5
movzx esi, byte [ecx + 1]
mov eax, edx
movd xmm1, eax
pinsrw xmm1, edx, 1
pinsrw xmm1, edx, 2
pinsrw xmm1, edx, 3
movzx edx, byte [ecx + 2]
pinsrw xmm1, esi, 4
mov eax, edx
pinsrw xmm1, esi, 5
pinsrw xmm1, esi, 6
pinsrw xmm1, esi, 7
movzx esi, byte [ecx + 3]
psubw xmm0, xmm1
movd xmm3, eax
movzx eax, byte [edi + 7]
mov word [esp + 0x14], ax
movzx eax, byte [edi + 6]
mov word [esp + 0x12], ax
movzx eax, byte [edi + 5]
pinsrw xmm3, edx, 1
mov word [esp + 0x10], ax
movzx eax, byte [edi + 4]
movzx edi, byte [edi + 3]
pinsrw xmm3, edx, 2
mov word [esp + 0xe], ax
mov eax, dword [esp + 0x18]
pinsrw xmm3, edx, 3
pinsrw xmm3, esi, 4
pinsrw xmm3, esi, 5
movzx edx, byte [eax + 1]
pinsrw xmm3, esi, 6
pinsrw xmm3, esi, 7
movzx esi, byte [eax + 2]
movzx eax, byte [eax]
pmullw xmm1, xmm4
movd xmm2, eax
pinsrw xmm2, edx, 1
mov edx, dword [esp + 0x18]
pinsrw xmm2, esi, 2
pinsrw xmm2, edi, 3
pinsrw xmm2, word [esp + 0xe], 4
movzx eax, byte [edx + 0xf]
pinsrw xmm2, word [esp + 0x10], 5
pinsrw xmm2, word [esp + 0x12], 6
pinsrw xmm2, word [esp + 0x14], 7
movzx edi, byte [edx + 0xb]
movzx esi, byte [edx + 0xa]
mov word [esp + 0xe], ax
movzx eax, byte [edx + 0xe]
mov word [esp + 0x10], ax
movzx eax, byte [edx + 0xd]
mov word [esp + 0x12], ax
movzx eax, byte [edx + 0xc]
movzx edx, byte [edx + 9]
mov word [esp + 0x14], ax
mov eax, dword [esp + 0x18]
pmullw xmm2, xmm0
movaps xmm0, xmm5
psubw xmm0, xmm3
pmullw xmm3, xmm4
movzx eax, byte [eax + 8]
paddusw xmm2, xmm1
psrlw xmm2, 8
movd xmm1, eax
mov eax, dword [esp + 0x18]
pinsrw xmm1, edx, 1
pinsrw xmm1, esi, 2
pinsrw xmm1, edi, 3
pinsrw xmm1, word [esp + 0x14], 4
pinsrw xmm1, word [esp + 0x12], 5
pinsrw xmm1, word [esp + 0x10], 6
pinsrw xmm1, word [esp + 0xe], 7
pmullw xmm1, xmm0
paddusw xmm1, xmm3
psrlw xmm1, 8
packuswb xmm2, xmm1
movups xmmword [eax], xmm2
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
mov edi, edx
add ecx, 4
mov dword [esp + 0x18], edi
jmp 0x100b24d3
lea edx, [edi + 8]
mov dword [esp + 0x28], edx
cmp edx, eax
jae 0x100b2793
mov dl, byte [ecx]
mov byte [esp + 0xe], dl
test dl, dl
mov edx, dword [esp + 0x28]
jne 0x100b26b7
cmp byte [ecx + 1], 0
je 0x100b2785
movzx edx, byte [esp + 0xe]
movaps xmm0, xmm5
movzx esi, byte [ecx + 1]
mov eax, edx
movd xmm2, eax
movzx eax, byte [edi + 7]
pinsrw xmm2, edx, 1
mov word [esp + 0xe], ax
movzx eax, byte [edi + 6]
pinsrw xmm2, edx, 2
mov word [esp + 0x10], ax
movzx eax, byte [edi + 5]
pinsrw xmm2, edx, 3
mov word [esp + 0x12], ax
movzx eax, byte [edi + 4]
movzx edi, byte [edi + 3]
pinsrw xmm2, esi, 4
mov word [esp + 0x14], ax
mov eax, dword [esp + 0x18]
pinsrw xmm2, esi, 5
pinsrw xmm2, esi, 6
pinsrw xmm2, esi, 7
movzx edx, byte [eax + 1]
psubw xmm0, xmm2
movzx esi, byte [eax + 2]
movzx eax, byte [eax]
pmullw xmm2, xmm4
movd xmm1, eax
pinsrw xmm1, edx, 1
mov edx, dword [esp + 0x18]
pinsrw xmm1, esi, 2
pinsrw xmm1, edi, 3
pinsrw xmm1, word [esp + 0x14], 4
pinsrw xmm1, word [esp + 0x12], 5
pinsrw xmm1, word [esp + 0x10], 6
pinsrw xmm1, word [esp + 0xe], 7
mov eax, dword [esp + 0x1c]
pmullw xmm1, xmm0
paddusw xmm1, xmm2
psrlw xmm1, 8
packuswb xmm1, xmm6
movd dword [edx], xmm1
psrldq xmm1, 4
movd dword [edx + 4], xmm1
mov edx, dword [esp + 0x28]
mov edi, edx
add ecx, 2
mov dword [esp + 0x18], edi
jmp 0x100b2690
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
cmp edi, eax
jae 0x100b2908
sub eax, edi
lea edx, [edi + 2]
dec eax
mov dword [esp + 0x18], edx
shr eax, 2
inc eax
mov dword [esp + 0x1c], eax
mov dl, byte [ecx]
mov byte [esp + 0xe], dl
test dl, dl
mov edx, dword [esp + 0x18]
je 0x100b28eb
movzx esi, byte [edx + 1]
mov edi, 0xff
movzx eax, byte [esp + 0xe]
sub edi, eax
mov dword [esp + 0x14], eax
imul eax, eax, 0xff
imul esi, edi
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, 0xff
mov dword [esp + 0x28], eax
cmp dword [esp + 0x28], 0xff
movzx eax, al
cmova eax, edx
mov edx, dword [esp + 0x18]
mov byte [edx + 1], al
mov eax, dword [esp + 0x2c]
movzx esi, al
movzx eax, byte [edx]
imul esi, dword [esp + 0x14]
imul eax, edi
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, 0xff
mov dword [esp + 0x28], eax
cmp dword [esp + 0x28], 0xff
movzx eax, al
cmova eax, edx
mov edx, dword [esp + 0x18]
movzx esi, byte [edx - 1]
mov byte [edx], al
mov eax, dword [esp + 0x30]
movzx eax, al
imul eax, dword [esp + 0x14]
imul esi, edi
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, 0xff
mov dword [esp + 0x28], eax
cmp dword [esp + 0x28], 0xff
movzx eax, al
cmova eax, edx
mov edx, dword [esp + 0x18]
movzx esi, byte [edx - 2]
mov byte [edx - 1], al
mov eax, dword [esp + 0x34]
movzx eax, al
imul eax, dword [esp + 0x14]
imul esi, edi
add esi, eax
mov eax, 0x80808081
imul esi
add edx, esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, 0xff
mov dword [esp + 0x28], eax
cmp dword [esp + 0x28], 0xff
movzx eax, al
cmova eax, edx
mov edx, dword [esp + 0x18]
mov byte [edx - 2], al
mov eax, dword [esp + 0x1c]
add edx, 4
inc ecx
sub eax, 1
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], eax
jne 0x100b27b5
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x38]
inc edx
add edi, dword [esp + 0x48]
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x24], edx
mov dword [esp + 0x38], edi
cmp edx, dword [esp + 0x4c]
jl 0x100b2487
pop edi
pop esi
mov esp, ebp
pop ebp
ret