Function at 0x10187110
Capabilities:
Enumerate pe sections

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x108
mov eax, dword [0x10206f54]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebx + 8]
lea ecx, [ebp - 0x38]
and eax, 0xfffffff0
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xac], eax
lea eax, [ebp - 0x78]
and eax, 0x3f
sub ecx, eax
cmp dword [ebx + 0x10], 0
push esi
push edi
mov dword [ebp - 0x7c], ecx
jl 0x10187b18
jg 0x10187172
cmp dword [ebx + 0xc], 0
jbe 0x10187b18
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x48]
add eax, eax
imul ecx, dword [ebx + 0x1c]
mov esi, dword [ebx + 0x30]
mov edx, dword [ebx + 0x38]
movaps xmm6, xmmword [0x10206860]
mov dword [ebp - 0xc0], eax
mov eax, dword [ebx + 0x40]
imul eax, dword [ebx + 0x18]
add eax, ecx
mov dword [ebp - 0xa8], eax
lea ecx, [esi + eax]
mov dword [ebp - 0xb4], ecx
nop dword [eax]
mov eax, dword [ebx + 0x34]
cmp byte [ebx + 0x58], 0
je 0x101871c0
mov esi, eax
mov eax, edx
mov edx, dword [ebx + 0x3c]
xor edi, edi
mov dword [ebp - 0x98], 0
cmp byte [ebx + 0x58], 0
cmove ecx, edi
mov edi, dword [ebp - 0xa8]
add edx, edi
mov dword [ebp - 0x94], ecx
add esi, edi
mov dword [ebp - 0x88], edx
add eax, edi
mov dword [ebp - 0x84], esi
cmp dword [ebp - 0xac], 0
jle 0x1018785d
mov edi, dword [ebp - 0x7c]
mov ecx, dword [ebx + 0x24]
add edi, 0x20
mov dword [ebp - 0xa0], edi
mov edi, dword [ebx + 0x2c]
add edi, 0x10
mov dword [ebp - 0x8c], ecx
mov ecx, dword [ebx + 0x28]
mov dword [ebp - 0xa4], edi
mov edi, ecx
sub edi, dword [ebx + 0x2c]
sub ecx, dword [ebx + 0x24]
mov dword [ebp - 0xbc], edi
mov edi, dword [ebx + 0x24]
sub edi, dword [ebx + 0x2c]
mov dword [ebp - 0x9c], edi
mov edi, dword [ebp - 0xac]
mov dword [ebp - 0x88], edx
mov dword [ebp - 0xb8], ecx
lea edi, [edi - 1]
shr edi, 4
inc edi
mov dword [ebp - 0x90], edi
shl edi, 4
mov dword [ebp - 0x98], edi
nop dword [eax]
nop dword [eax + eax]
mov ecx, dword [ebp - 0x8c]
movaps xmm0, xmm6
mov edi, dword [ebp - 0xb8]
movups xmm1, xmmword [edi + ecx]
mov ecx, dword [ebp - 0xa4]
pcmpgtw xmm0, xmm1
mov edi, dword [ebp - 0xbc]
movaps xmm5, xmm1
pcmpgtw xmm5, xmmword [0x10206850]
por xmm5, xmm0
movaps xmm0, xmm6
movups xmm2, xmmword [ecx - 0x10]
pand xmm5, xmm1
movups xmm3, xmmword [edi + ecx]
pcmpgtw xmm0, xmm2
movups xmm4, xmmword [ecx]
movaps xmm7, xmm2
pcmpgtw xmm7, xmmword [0x10206850]
movaps xmm1, xmm4
pcmpgtw xmm1, xmmword [0x10206850]
por xmm7, xmm0
psllw xmm5, 3
movaps xmm0, xmm6
pcmpgtw xmm0, xmm3
mov ecx, dword [ebp - 0x9c]
movaps xmmword [ebp - 0xe0], xmm5
pand xmm7, xmm2
mov edi, dword [ebp - 0xa4]
movaps xmm5, xmm3
pcmpgtw xmm5, xmmword [0x10206850]
por xmm5, xmm0
psllw xmm7, 3
movaps xmm0, xmm6
pand xmm5, xmm3
pcmpgtw xmm0, xmm4
movups xmm3, xmmword [ecx + edi]
por xmm1, xmm0
mov ecx, dword [ebp - 0x8c]
pand xmm1, xmm4
psllw xmm5, 3
psllw xmm1, 3
movaps xmm2, xmm7
pmulhw xmm2, xmmword [0x10206870]
movaps xmm6, xmm1
movups xmm4, xmmword [ecx]
pmulhw xmm6, xmmword [0x10206870]
movaps xmm0, xmm1
pmulhw xmm0, xmmword [0x10206880]
movaps xmmword [ebp - 0xd0], xmm7
psllw xmm3, 3
paddw xmm2, xmm7
movaps xmmword [ebp - 0xf0], xmm5
paddw xmm3, xmmword [0x10206820]
paddw xmm6, xmm1
psubw xmm1, xmm0
psllw xmm4, 3
movaps xmm0, xmm5
paddw xmm6, xmm3
pmulhw xmm0, xmmword [0x10206890]
movaps xmm7, xmm3
paddw xmm4, xmmword [0x10206820]
movaps xmmword [ebp - 0x100], xmm6
paddw xmm2, xmm4
movaps xmm6, xmmword [ebp - 0xd0]
psllw xmm5, 1
paddw xmm1, xmm0
movaps xmm0, xmmword [ebp - 0xd0]
pmulhw xmm0, xmmword [0x10206880]
psubw xmm7, xmm1
movaps xmm1, xmm4
psubw xmm6, xmm0
movaps xmm0, xmmword [ebp - 0xe0]
pmulhw xmm0, xmmword [0x10206890]
paddw xmm6, xmm0
movaps xmm0, xmmword [ebp - 0xf0]
pmulhw xmm0, xmmword [0x102068a0]
movaps xmmword [ebp - 0xd0], xmm6
psubw xmm1, xmmword [ebp - 0xd0]
psubw xmm5, xmm0
movaps xmm0, xmmword [ebp - 0xe0]
paddw xmm5, xmm3
cmp byte [ebx + 0x58], 0
movaps xmm3, xmm0
pmulhw xmm0, xmmword [0x102068a0]
movaps xmm6, xmmword [str.]
psllw xmm3, 1
mov ecx, dword [ebp - 0x7c]
mov edi, dword [ebx + 0x40]
psubw xmm3, xmm0
movaps xmm0, xmmword [str.________]
paddw xmm3, xmm4
movaps xmm4, xmm0
pcmpgtw xmm0, xmmword [ebp - 0x100]
pcmpgtw xmm4, xmm2
pandn xmm0, xmmword [ebp - 0x100]
pandn xmm4, xmm2
paddw xmm4, xmmword [str.]
paddw xmm0, xmm6
psrlw xmm0, 6
psrlw xmm4, 6
packuswb xmm4, xmm0
movaps xmm0, xmmword [str.________]
movaps xmm2, xmm0
movups xmmword [ecx], xmm4
pcmpgtw xmm2, xmm1
pcmpgtw xmm0, xmm7
pandn xmm2, xmm1
pandn xmm0, xmm7
movaps xmm1, xmmword [str.________]
paddw xmm0, xmm6
psrlw xmm0, 6
paddw xmm2, xmm6
psrlw xmm2, 6
pcmpgtw xmm1, xmm3
pandn xmm1, xmm3
packuswb xmm2, xmm0
paddw xmm1, xmm6
movaps xmm0, xmmword [str.________]
pcmpgtw xmm0, xmm5
movups xmmword [ecx + 0x10], xmm2
mov ecx, dword [ebp - 0xa0]
pandn xmm0, xmm5
paddw xmm0, xmm6
psrlw xmm1, 6
psrlw xmm0, 6
packuswb xmm1, xmm0
movups xmmword [ecx], xmm1
je 0x101875a7
cmp edi, 4
je 0x10187551
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x84], 0x10
movzx ecx, byte [ecx - 0x20]
mov byte [esi], cl
add esi, edi
mov ecx, dword [ebp - 0x80]
movzx ecx, byte [ecx - 0x10]
mov byte [eax], cl
add eax, edi
mov ecx, dword [ebp - 0x80]
movzx ecx, byte [ecx]
mov byte [edx], cl
mov ecx, dword [ebp - 0x94]
mov dl, byte [ebx + 0x5c]
mov byte [ecx], dl
add ecx, edi
mov edx, dword [ebp - 0x88]
mov dword [ebp - 0x94], ecx
add edx, edi
mov ecx, dword [ebp - 0x80]
inc ecx
mov dword [ebp - 0x88], edx
sub dword [ebp - 0x84], 1
mov dword [ebp - 0x80], ecx
jne 0x10187500
jmp 0x10187826
mov edi, dword [ebp - 0x94]
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x84], 0x10
movzx ecx, byte [ecx - 0x20]
mov byte [esi], cl
add esi, 4
mov ecx, dword [ebp - 0x80]
movzx ecx, byte [ecx - 0x10]
mov byte [eax], cl
add eax, 4
mov ecx, dword [ebp - 0x80]
movzx ecx, byte [ecx]
mov byte [edx], cl
add edx, 4
mov cl, byte [ebx + 0x5c]
mov byte [edi], cl
add edi, 4
mov ecx, dword [ebp - 0x80]
inc ecx
sub dword [ebp - 0x84], 1
mov dword [ebp - 0x80], ecx
jne 0x10187564
mov dword [ebp - 0x94], edi
jmp 0x10187820
mov ecx, edi
sub ecx, 3
je 0x10187639
sub ecx, 1
je 0x10187602
mov ecx, dword [ebp - 0xa0]
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x84], 0x10
nop word [eax + eax]
movzx ecx, byte [ecx - 0x20]
mov byte [esi], cl
add esi, edi
mov ecx, dword [ebp - 0x80]
movzx ecx, byte [ecx - 0x10]
mov byte [eax], cl
add eax, edi
mov ecx, dword [ebp - 0x80]
movzx ecx, byte [ecx]
mov byte [edx], cl
add edx, edi
mov ecx, dword [ebp - 0x80]
inc ecx
sub dword [ebp - 0x84], 1
mov dword [ebp - 0x80], ecx
jne 0x101875d0
jmp 0x10187820
mov edi, dword [ebp - 0xa0]
mov dword [ebp - 0x80], 0x10
nop
movzx ecx, byte [edi - 0x20]
lea edi, [edi + 1]
mov byte [esi], cl
add esi, 4
movzx ecx, byte [edi - 0x11]
mov byte [eax], cl
add eax, 4
movzx ecx, byte [edi - 1]
mov byte [edx], cl
add edx, 4
sub dword [ebp - 0x80], 1
jne 0x10187610
jmp 0x10187820
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx]
mov byte [esi], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 1]
mov byte [esi + 3], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 2]
mov byte [esi + 6], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 3]
mov byte [esi + 9], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 4]
mov byte [esi + 0xc], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 5]
mov byte [esi + 0xf], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 6]
mov byte [esi + 0x12], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 7]
mov byte [esi + 0x15], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 8]
mov byte [esi + 0x18], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 9]
mov byte [esi + 0x1b], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0xa]
mov byte [esi + 0x1e], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0xb]
mov byte [esi + 0x21], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0xc]
mov byte [esi + 0x24], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0xd]
mov byte [esi + 0x27], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0xe]
mov byte [esi + 0x2a], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0xf]
mov byte [esi + 0x2d], cl
add esi, 0x30
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x10]
mov byte [eax], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x11]
mov byte [eax + 3], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x12]
mov byte [eax + 6], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x13]
mov byte [eax + 9], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x14]
mov byte [eax + 0xc], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x15]
mov byte [eax + 0xf], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x16]
mov byte [eax + 0x12], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x17]
mov byte [eax + 0x15], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x18]
mov byte [eax + 0x18], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x19]
mov byte [eax + 0x1b], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x1a]
mov byte [eax + 0x1e], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x1b]
mov byte [eax + 0x21], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x1c]
mov byte [eax + 0x24], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x1d]
mov byte [eax + 0x27], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x1e]
mov byte [eax + 0x2a], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x1f]
mov byte [eax + 0x2d], cl
add eax, 0x30
mov ecx, dword [ebp - 0xa0]
movzx ecx, byte [ecx]
mov byte [edx], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x21]
mov byte [edx + 3], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x22]
mov byte [edx + 6], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x23]
mov byte [edx + 9], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x24]
mov byte [edx + 0xc], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x25]
mov byte [edx + 0xf], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x26]
mov byte [edx + 0x12], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x27]
mov byte [edx + 0x15], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x28]
mov byte [edx + 0x18], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x29]
mov byte [edx + 0x1b], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x2a]
mov byte [edx + 0x1e], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x2b]
mov byte [edx + 0x21], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x2c]
mov byte [edx + 0x24], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x2d]
mov byte [edx + 0x27], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x2e]
mov byte [edx + 0x2a], cl
mov ecx, dword [ebp - 0x7c]
movzx ecx, byte [ecx + 0x2f]
mov byte [edx + 0x2d], cl
add edx, 0x30
mov dword [ebp - 0x88], edx
add dword [ebp - 0xa4], 0x20
add dword [ebp - 0x8c], 0x20
sub dword [ebp - 0x90], 1
movaps xmm6, xmmword [0x10206860]
jne 0x10187270
movaps xmm6, xmmword [0x10206860]
mov ecx, dword [ebp - 0x94]
mov dword [ebp - 0x84], esi
jmp 0x1018786f
mov edi, dword [ebx + 0x24]
mov dword [ebp - 0x9c], edi
mov edi, dword [ebx + 0x2c]
sub dword [ebp - 0x9c], edi
cmp byte [ebx + 0x58], 0
je 0x101879b0
mov edx, dword [ebx + 8]
cmp dword [ebp - 0x98], edx
jge 0x10187ac5
mov edx, dword [ebx + 0x2c]
sub ecx, eax
mov edi, dword [ebp - 0x98]
sub esi, eax
sub dword [ebp - 0x88], eax
mov dword [ebp - 0x94], ecx
mov ecx, dword [ebx + 8]
lea edi, [edx + edi*2]
mov dword [ebp - 0x84], esi
mov dword [ebp - 0x80], edi
mov edi, dword [ebx + 0x28]
sub edi, edx
sub ecx, dword [ebp - 0x98]
mov dword [ebp - 0x8c], ecx
mov ecx, dword [ebp - 0x80]
mov dword [ebp - 0x90], edi
nop word [eax + eax]
mov edx, dword [ebp - 0x9c]
movsx edi, word [ecx + edx]
movsx edx, word [ecx]
add edi, 0x400
mov ecx, dword [0x101ef584]
shl edi, 0x10
mov ecx, dword [ecx + edx*4]
add ecx, 0x3ffff
add ecx, edi
sar ecx, 0x13
movsx edx, cx
mov ecx, dword [0x101ef580]
movzx ecx, byte [edx + ecx]
mov edx, dword [ebp - 0x90]
mov byte [esi + eax], cl
mov esi, edi
mov ecx, dword [ebp - 0x80]
movsx edx, word [ecx + edx]
mov ecx, dword [0x101ef590]
sub esi, dword [ecx + edx*4]
mov ecx, dword [ebp - 0x80]
movsx edx, word [ecx]
mov ecx, dword [0x101ef58c]
sub esi, dword [ecx + edx*4]
mov ecx, dword [0x101ef580]
add esi, 0x3fcff
sar esi, 0x13
movsx edx, si
mov esi, dword [ebp - 0x84]
movzx ecx, byte [edx + ecx]
mov edx, dword [ebp - 0x90]
mov byte [eax], cl
mov ecx, dword [ebp - 0x80]
movsx edx, word [ecx + edx]
mov ecx, dword [0x101ef588]
mov ecx, dword [ecx + edx*4]
add ecx, 0x3ffff
add ecx, edi
sar ecx, 0x13
movsx edx, cx
mov ecx, dword [0x101ef580]
movzx ecx, byte [edx + ecx]
mov edx, dword [ebp - 0x88]
mov byte [edx + eax], cl
mov ecx, dword [ebp - 0x94]
mov dl, byte [ebx + 0x5c]
mov byte [ecx + eax], dl
mov ecx, dword [ebp - 0x80]
add eax, dword [ebx + 0x40]
add ecx, 2
sub dword [ebp - 0x8c], 1
mov dword [ebp - 0x80], ecx
jne 0x101878d0
jmp 0x10187ac5
mov ecx, dword [ebp - 0x98]
cmp ecx, dword [ebx + 8]
jge 0x10187ac5
mov edi, dword [ebx + 0x2c]
sub edx, esi
mov dword [ebp - 0x88], edx
sub eax, esi
mov edx, dword [ebx + 8]
lea ecx, [edi + ecx*2]
mov edi, dword [ebx + 0x28]
sub edi, dword [ebx + 0x2c]
sub edx, dword [ebp - 0x98]
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x90], edi
mov dword [ebp - 0x8c], edx
nop dword [eax]
mov edx, dword [ebp - 0x9c]
movsx edi, word [ecx + edx]
movsx edx, word [ecx]
add edi, 0x400
mov ecx, dword [0x101ef584]
shl edi, 0x10
mov ecx, dword [ecx + edx*4]
add ecx, 0x3ffff
add ecx, edi
sar ecx, 0x13
movsx edx, cx
mov ecx, dword [0x101ef580]
movzx ecx, byte [edx + ecx]
mov edx, dword [ebp - 0x90]
mov byte [esi], cl
mov esi, edi
mov ecx, dword [ebp - 0x80]
movsx edx, word [ecx + edx]
mov ecx, dword [0x101ef590]
sub esi, dword [ecx + edx*4]
mov ecx, dword [ebp - 0x80]
movsx edx, word [ecx]
mov ecx, dword [0x101ef58c]
sub esi, dword [ecx + edx*4]
mov ecx, dword [0x101ef580]
add esi, 0x3fcff
sar esi, 0x13
movsx edx, si
mov esi, dword [ebp - 0x84]
movzx ecx, byte [edx + ecx]
mov edx, dword [ebp - 0x90]
mov byte [eax + esi], cl
mov ecx, dword [ebp - 0x80]
movsx edx, word [ecx + edx]
mov ecx, dword [0x101ef588]
mov ecx, dword [ecx + edx*4]
add ecx, 0x3ffff
add ecx, edi
sar ecx, 0x13
movsx edx, cx
mov ecx, dword [0x101ef580]
movzx ecx, byte [edx + ecx]
mov edx, dword [ebp - 0x88]
mov byte [edx + esi], cl
mov ecx, dword [ebp - 0x80]
add esi, dword [ebx + 0x40]
add ecx, 2
sub dword [ebp - 0x8c], 1
mov dword [ebp - 0x84], esi
mov dword [ebp - 0x80], ecx
jne 0x101879f0
mov eax, dword [ebp - 0xc0]
add dword [ebx + 0x24], eax
add dword [ebx + 0x28], eax
add dword [ebx + 0x2c], eax
mov esi, dword [ebp - 0xb0]
mov eax, dword [ebx + 0x48]
inc esi
mov ecx, dword [ebp - 0xb4]
add dword [ebp - 0xa8], eax
add ecx, eax
mov eax, esi
mov dword [ebp - 0xb0], esi
mov esi, dword [ebx + 0x30]
cdq
cmp edx, dword [ebx + 0x10]
mov edx, dword [ebx + 0x38]
mov dword [ebp - 0xb4], ecx
jl 0x101871b0
jg 0x10187b18
cmp eax, dword [ebx + 0xc]
mov eax, dword [ebx + 0x34]
jb 0x101871b3
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.101a8b60
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret