Function at 0x45951a
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff48
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x4c], ebx
mov esi, dword [ebp + 0x28]
lea edi, [ebp - 0xa8]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, ecx
lea edi, [ebp - 0x98]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, edx
lea edi, [ebp - 0x88]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x28], eax
xor eax, eax
push ebp
push 0x459307
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [ebp + 0x20], 2
jne 0x458e86
cmp word [ebp + 0x1a], 0
jne 0x458e86
mov byte [ebp + 0x20], 0
cmp byte [ebp + 0x20], 1
jne 0x458e9c
mov eax, dword [ebp + 0x2c]
cmp dword [eax + 0x84], 0
je 0x4592d8
mov ebx, dword [ebp - 0x90]
sub ebx, dword [ebp - 0x98]
lea eax, [ebp - 0x48]
mov edx, dword [0x458010]
call fcn.00405834
lea eax, [ebp - 0x4c]
mov edx, dword [0x458010]
call fcn.00405834
xor edx, edx
push ebp
push 0x4592d1
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + ebx*4 - 4]
call fcn.00405654
mov edx, dword [ebp + 0x14]
mov edx, dword [edx + ebx*4 - 4]
mov eax, dword [edx + eax*8]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 0x3c]
inc eax
add eax, 3
test eax, eax
jns 0x458f06
add eax, 3
sar eax, 2
shl eax, 2
add eax, 8
push eax
lea eax, [ebp - 0x44]
mov ecx, 1
mov edx, dword [0x458dfc]
call fcn.00405828
add esp, 4
mov eax, dword [ebp - 0x44]
call fcn.0040564c
mov edx, eax
shl edx, 4
mov eax, dword [ebp - 0x44]
xor ecx, ecx
call fcn.00403070
mov eax, dword [ebp - 0x94]
mov edx, dword [ebp - 0x8c]
dec edx
sub edx, eax
jl 0x4592be
inc edx
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x4c]
mov edx, dword [ebp - 0x30]
sub edx, dword [ebp - 0x94]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + edx*4]
mov ecx, dword [0x458010]
call fcn.00405870
mov esi, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x40]
sub ebx, esi
jl 0x45910b
inc ebx
pxor mm0, mm0
movq qword [ebp - 0x10], mm0
movq qword [ebp - 8], mm0
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax]
mov edx, dword [ebp + 0x2c]
imul dword [edx + 0x34]
add eax, esi
mov edx, dword [ebp + 0x2c]
mov edx, dword [edx + 0x6c]
lea eax, [edx + eax*4]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax + 0x34]
shl eax, 2
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x4c]
call fcn.0040564c
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x94]
mov edx, dword [ebp + 8]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x1c], eax
pxor mm6, mm6
pxor mm7, mm7
push ecx
push ebx
mov eax, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x20]
jmp 0x45903c
movd mm0, dword [eax]
add eax, ebx
movd mm1, dword [eax]
add eax, ebx
movd mm2, dword [eax]
add eax, ebx
movd mm3, dword [eax]
add eax, ebx
punpcklbw mm0, mm1
movq mm4, qword [ecx]
movq mm1, mm0
pxor mm5, mm5
punpckhbw mm0, mm5
pmaddwd mm0, mm4
punpcklbw mm2, mm3
movq mm3, mm2
punpcklbw mm1, mm5
pmaddwd mm1, mm4
movq mm4, qword [ecx + 8]
paddd mm7, mm0
paddd mm6, mm1
punpckhbw mm2, mm5
pmaddwd mm2, mm4
punpcklbw mm3, mm5
pmaddwd mm3, mm4
paddd mm7, mm2
paddd mm6, mm3
add ecx, 0x10
sub edx, 4
cmp edx, 4
jae case.default.0x459041
jmp dword [edx*4 + 0x459048]
mov edx, 4
movd mm0, dword [eax]
add eax, ebx
movd mm1, dword [eax]
add eax, ebx
movd mm2, dword [eax]
add eax, ebx
pxor mm3, mm3
jmp 0x45909b
mov edx, 4
movd mm0, dword [eax]
add eax, ebx
movd mm1, dword [eax]
add eax, ebx
pxor mm2, mm2
pxor mm3, mm3
jmp 0x45909b
mov edx, 4
movd mm0, dword [eax]
add eax, ebx
pxor mm1, mm1
pxor mm2, mm2
pxor mm3, mm3
punpcklbw mm0, mm1
movq mm4, qword [ecx]
movq mm1, mm0
pxor mm5, mm5
punpckhbw mm0, mm5
pmaddwd mm0, mm4
punpcklbw mm2, mm3
movq mm3, mm2
punpcklbw mm1, mm5
pmaddwd mm1, mm4
movq mm4, qword [ecx + 8]
paddd mm7, mm0
paddd mm6, mm1
punpckhbw mm2, mm5
pmaddwd mm2, mm4
punpcklbw mm3, mm5
pmaddwd mm3, mm4
paddd mm7, mm2
paddd mm6, mm3
pop ebx
pop ecx
movd dword [ebp - 0x10], mm7
punpckhdq mm7, mm7
movd dword [ebp - 4], mm7
movd dword [ebp - 8], mm6
punpckhdq mm6, mm6
movd dword [ebp - 0xc], mm6
mov eax, esi
sub eax, dword [ebp - 0x3c]
add eax, eax
mov edx, dword [ebp - 0x44]
push esi
lea edi, [edx + eax*8]
lea esi, [ebp - 0x10]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop esi
inc esi
dec ebx
jne 0x458f85
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x28]
call fcn.0045b07c
mov dword [ebp - 0x74], eax
mov esi, dword [ebp - 0x98]
mov ebx, dword [ebp - 0x90]
dec ebx
sub ebx, esi
jl 0x4592b2
inc ebx
lea eax, [ebp - 0x48]
mov edx, esi
sub edx, dword [ebp - 0x98]
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx + edx*4]
mov ecx, dword [0x458010]
call fcn.00405870
pxor mm0, mm0
movq qword [ebp - 0x10], mm0
movq qword [ebp - 8], mm0
mov eax, dword [ebp - 0x48]
mov eax, dword [eax]
sub eax, dword [ebp - 0x3c]
add eax, eax
mov edx, dword [ebp - 0x44]
lea eax, [edx + eax*8]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x48]
call fcn.0040564c
add eax, 3
test eax, eax
jns 0x45917b
add eax, 3
sar eax, 2
shl eax, 2
mov dword [ebp - 0x20], eax
mov eax, esi
sub eax, dword [ebp - 0x98]
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
pxor mm7, mm7
pxor mm6, mm6
pxor mm2, mm2
pxor mm3, mm3
prefetchnta byte [eax]
movd mm0, dword [eax + 0x10]
punpckldq mm0, dword [eax]
movd mm4, dword [eax + 0x1c]
punpckldq mm4, dword [eax + 0xc]
psrad mm0, 8
psrad mm4, 8
packssdw mm0, mm4
pmaddwd mm0, qword [ecx]
paddd mm7, mm2
movd mm1, dword [eax + 0x18]
punpckldq mm1, dword [eax + 8]
movd mm4, dword [eax + 0x14]
punpckldq mm4, dword [eax + 4]
psrad mm1, 8
psrad mm4, 8
packssdw mm1, mm4
pmaddwd mm1, qword [ecx]
paddd mm6, mm3
movd mm2, dword [eax + 0x30]
punpckldq mm2, dword [eax + 0x20]
movd mm4, dword [eax + 0x3c]
punpckldq mm4, dword [eax + 0x2c]
psrad mm2, 8
psrad mm4, 8
packssdw mm2, mm4
pmaddwd mm2, qword [ecx + 8]
paddd mm7, mm0
movd mm3, dword [eax + 0x38]
punpckldq mm3, dword [eax + 0x28]
movd mm4, dword [eax + 0x34]
punpckldq mm4, dword [eax + 0x24]
psrad mm3, 8
psrad mm4, 8
packssdw mm3, mm4
pmaddwd mm3, qword [ecx + 8]
paddd mm6, mm1
add eax, 0x40
add ecx, 0x10
sub edx, 4
jne 0x4591aa
paddd mm7, mm2
paddd mm6, mm3
psrad mm6, 8
psrad mm7, 8
packssdw mm6, mm7
packuswb mm6, mm6
movd dword [ebp - 0x24], mm6
mov al, byte [ebp + 0x20]
sub al, 1
jb 0x459268
je 0x459273
dec al
je 0x459291
jmp 0x4592aa
mov eax, dword [ebp - 0x74]
mov edx, dword [ebp - 0x24]
mov dword [eax + esi*4], edx
jmp 0x4592aa
mov eax, dword [ebp - 0x74]
lea edx, [eax + esi*4]
mov edi, dword [0x48d684]
mov edi, dword [edi]
mov eax, dword [ebp + 0x2c]
mov ecx, dword [eax + 0x84]
mov eax, dword [ebp - 0x24]
call edi
jmp 0x4592aa
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax + 0x84]
push eax
mov eax, dword [ebp - 0x74]
lea ecx, [eax + esi*4]
mov edx, dword [ebp - 0x24]
mov eax, dword [ebp + 0x1c]
call dword [ebp + 0x18]
inc esi
dec ebx
jne 0x45912f
inc dword [ebp - 0x30]
dec dword [ebp - 0x78]
jne 0x458f59
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4592d8
call fcn.00456e0c
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x45930e
lea eax, [ebp - 0x4c]
mov edx, dword [0x458010]
mov ecx, 2
call fcn.00404fe8
lea eax, [ebp - 0x44]
mov edx, dword [0x458dfc]
call fcn.00405834
ret
add byte [eax], al
add byte [eax], al
add al, byte [eax]
add byte [eax], al
push esp
xchg esp, eax
inc ebp
add byte [eax], al
add byte [eax], al
adc byte [ebp + eax*2 + 0x4400], 0
adc dword [ebx + edx*2 + 0x74], edx
jb 0x459585
je 0x459585
push 0x7261654e
jae 0x45959e
push ebx
push esp
inc edx
or byte [ecx + 0x38bf445], cl
add ecx, dword [ebx + 0x138b3040]
and dl, byte [edi - 0x75]
add eax, dword [ebx + 0x1b940c0]
add byte [eax], al
add byte [ebx + 0x45945415], cl
add al, ch
jae 0x459575
cli
inc dword [ebx - 0x17cfb3c]
add dword [edi], ecx
mov fs, word [ebp - 0x80000000]
cmp eax, 0x48ce00
add byte [esp + ecx*2 - 0x25], dh
inc ebp
cld