Function at 0x488780
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x7c
mov ebx, dword [esp + 0x90]
mov esi, edx
mov edx, ebx
shr edx, 0x1f
add edx, ebx
sar edx, 1
inc edx
push 0
call fcn.00435490
add esp, 4
test eax, eax
je 0x488bcc
xor edi, edi
cmp ebx, 2
jl 0x488bc8
mov ebp, ebx
add ebx, 0xfffffffe
xor edi, edi
mov dword [esp + 8], eax
cmp ebx, 0x1e
jb 0x488b64
mov edx, ebp
shr ebx, 1
and edx, 0xfffffffe
add edx, esi
cmp eax, edx
jae 0x4887e8
mov eax, dword [esp + 8]
lea eax, [ebx + eax + 1]
cmp eax, esi
ja 0x488b64
movdqa xmm0, xmmword [0x50b340]
movdqa xmm2, xmmword [0x50b310]
movdqa xmm3, xmmword [0x50b320]
movdqa xmm5, xmmword [0x50b330]
mov ecx, dword [esp + 8]
inc ebx
xor ebp, ebp
mov dword [esp + 0x18], ebx
and ebx, 0xfffffff0
lea eax, [ebx + ebx]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], eax
movdqu xmmword [esp + 0x30], xmm0
nop word [eax + eax]
movzx eax, byte [esi + ebp*2 + 0x1e]
movdqu xmmword [esp + 0x60], xmm2
movdqu xmmword [esp + 0x40], xmm5
movdqu xmmword [esp + 0x50], xmm3
movd xmm0, eax
movzx eax, byte [esi + ebp*2 + 0x1c]
movd xmm1, eax
movzx eax, byte [esi + ebp*2 + 0x1a]
punpcklbw xmm1, xmm0
movd xmm0, eax
movzx eax, byte [esi + ebp*2 + 0x18]
movd xmm4, eax
movzx eax, byte [esi + ebp*2 + 0x16]
punpcklbw xmm4, xmm0
punpcklwd xmm4, xmm1
movd xmm0, eax
movzx eax, byte [esi + ebp*2 + 0x14]
movd xmm1, eax
movzx eax, byte [esi + ebp*2 + 0x12]
punpcklbw xmm1, xmm0
movd xmm7, eax
movzx eax, byte [esi + ebp*2 + 0x10]
movd xmm0, eax
movzx eax, byte [esi + ebp*2 + 0xe]
punpcklbw xmm0, xmm7
punpcklwd xmm0, xmm1
punpckldq xmm0, xmm4
movd xmm1, eax
movzx eax, byte [esi + ebp*2 + 0xc]
movd xmm4, eax
movzx eax, byte [esi + ebp*2 + 0xa]
punpcklbw xmm4, xmm1
movd xmm1, eax
movzx eax, byte [esi + ebp*2 + 8]
movd xmm7, eax
movzx eax, byte [esi + ebp*2 + 6]
punpcklbw xmm7, xmm1
punpcklwd xmm7, xmm4
movd xmm1, eax
movzx eax, byte [esi + ebp*2 + 4]
movd xmm4, eax
movzx eax, byte [esi + ebp*2 + 2]
punpcklbw xmm4, xmm1
movd xmm1, eax
movzx eax, byte [esi + ebp*2]
movd xmm6, eax
punpcklbw xmm6, xmm1
movdqa xmm1, xmmword [0x50b350]
punpcklwd xmm6, xmm4
movdqa xmm4, xmm5
punpckldq xmm6, xmm7
punpcklqdq xmm6, xmm0
movdqa xmm0, xmm6
psrlw xmm0, 6
pand xmm0, xmm1
movdqa xmm1, xmm3
movdqa xmm7, xmm0
psllw xmm7, 3
por xmm7, xmm0
movdqa xmm0, xmm2
movdqa xmm2, xmmword [0x50b370]
paddb xmm7, xmm6
movdqu xmm6, xmmword [esp + 0x30]
psllw xmm7, 4
pand xmm7, xmmword [0x50b360]
por xmm4, xmm2
por xmm1, xmm2
por xmm0, xmm2
por xmm6, xmm2
movd dword [esp + 0x10], xmm4
pshufd xmm2, xmm1, 0xe5
movd dword [esp + 0x24], xmm1
pshufd xmm5, xmm6, 0xe5
movd edi, xmm6
movd dword [esp + 0x20], xmm2
pshufd xmm2, xmm1, 0x4e
pshufd xmm1, xmm1, 0xe7
movd dword [esp + 0xc], xmm5
pshufd xmm5, xmm6, 0x4e
movzx ebx, byte [esi + edi]
movd edx, xmm5
pshufd xmm5, xmm6, 0xe7
movzx edx, byte [esi + edx]
movd eax, xmm5
pshufd xmm5, xmm4, 0xe5
movzx eax, byte [esi + eax]
movd dword [esp + 0x2c], xmm5
pshufd xmm5, xmm4, 0x4e
pshufd xmm4, xmm4, 0xe7
movd dword [esp + 0x28], xmm5
movd xmm6, edx
mov edx, dword [esp + 0xc]
movd xmm5, eax
movd eax, xmm4
movd xmm4, ebx
movzx eax, byte [esi + eax]
punpcklbw xmm6, xmm5
pshufd xmm5, xmm0, 0x4e
movd ebx, xmm5
movzx edi, byte [esi + edx]
movd edx, xmm1
pshufd xmm1, xmm0, 0xe5
movd dword [esp + 0xc], xmm1
movzx edx, byte [esi + edx]
movd xmm3, edi
movd edi, xmm2
movd xmm2, eax
mov eax, dword [esp + 0x28]
punpcklbw xmm4, xmm3
punpcklwd xmm4, xmm6
movzx eax, byte [esi + eax]
movd xmm1, eax
mov eax, dword [esp + 0x10]
movd dword [esp + 0x10], xmm0
pshufd xmm0, xmm0, 0xe7
punpcklbw xmm1, xmm2
movzx eax, byte [esi + eax]
movd xmm5, eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [esi + eax]
movd xmm3, eax
movd eax, xmm0
movd xmm0, edx
movzx edx, byte [esi + edi]
punpcklbw xmm5, xmm3
movzx eax, byte [esi + eax]
punpcklwd xmm5, xmm1
punpckldq xmm4, xmm5
movdqu xmm5, xmmword [esp + 0x40]
movd xmm2, edx
mov edx, dword [esp + 0x24]
punpcklbw xmm2, xmm0
movd xmm0, eax
movzx eax, byte [esi + ebx]
movzx edx, byte [esi + edx]
movd xmm1, edx
mov edx, dword [esp + 0x20]
movzx edx, byte [esi + edx]
movd xmm3, edx
punpcklbw xmm1, xmm3
movd xmm3, eax
mov eax, dword [esp + 0x10]
punpcklwd xmm1, xmm2
punpcklbw xmm3, xmm0
movzx eax, byte [esi + eax]
movd xmm2, eax
mov eax, dword [esp + 0xc]
movzx eax, byte [esi + eax]
movd xmm0, eax
mov eax, ebp
add ebp, 0x10
punpcklbw xmm2, xmm0
and eax, 0x7ffffff0
cmp dword [esp + 0x14], ebp
punpcklwd xmm2, xmm3
movdqu xmm3, xmmword [esp + 0x50]
punpckldq xmm1, xmm2
movdqu xmm2, xmmword [esp + 0x30]
punpcklqdq xmm4, xmm1
movdqa xmm0, xmm4
psrlw xmm0, 6
pand xmm0, xmmword [0x50b350]
movdqa xmm1, xmm0
psllw xmm1, 3
por xmm1, xmm0
movdqa xmm0, xmmword [0x50b390]
paddb xmm1, xmm4
pand xmm1, xmmword [0x50b380]
paddd xmm2, xmm0
paddd xmm5, xmm0
paddd xmm3, xmm0
movdqu xmmword [esp + 0x30], xmm2
movdqu xmm2, xmmword [esp + 0x60]
por xmm1, xmm7
movdqu xmmword [ecx + eax], xmm1
paddd xmm2, xmm0
jne 0x488830
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x90]
mov edi, dword [esp + 0x1c]
cmp dword [esp + 0x18], eax
je 0x488bc2
mov edx, dword [esp + 8]
mov eax, edi
dec ebp
shr eax, 1
mov dword [esp + 0x30], ebp
add edx, eax
nop word cs:[eax + eax]
nop dword [eax]
movzx ebx, byte [esi + edi]
movzx ecx, byte [esi + edi + 1]
mov ebp, edi
mov eax, ebx
mov ch, cl
shr al, 6
shr ch, 6
and al, 1
and ch, 1
movzx eax, al
movzx edi, ch
lea eax, [eax + eax*8]
add al, bl
lea ebx, [edi + edi*8]
mov edi, ebp
mov ebp, dword [esp + 0x30]
add bl, cl
shl al, 4
add edi, 2
and bl, 0xf
or bl, al
mov byte [edx], bl
inc edx
cmp edi, ebp
jl 0x488b80
mov eax, dword [esp + 8]
shr edi, 1
mov byte [eax + edi], 0
add esp, 0x7c
pop esi
pop edi
pop ebx
pop ebp
ret