Function at 0x459452
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 0x45923f
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [ebp + 0x20], 2
jne 0x458dbe
cmp word [ebp + 0x1a], 0
jne 0x458dbe
mov byte [ebp + 0x20], 0
cmp byte [ebp + 0x20], 1
jne 0x458dd4
mov eax, dword [ebp + 0x2c]
cmp dword [eax + 0x84], 0
je 0x459210
mov ebx, dword [ebp - 0x90]
sub ebx, dword [ebp - 0x98]
lea eax, [ebp - 0x48]
mov edx, dword [0x457f48]
call fcn.00405940
lea eax, [ebp - 0x4c]
mov edx, dword [0x457f48]
call fcn.00405940
xor edx, edx
push ebp
push 0x459209
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.00405660
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 0x458e3e
add eax, 3
sar eax, 2
shl eax, 2
add eax, 8
push eax
lea eax, [ebp - 0x44]
mov ecx, 1
mov edx, dword [0x458d34]
call fcn.00405834
add esp, 4
mov eax, dword [ebp - 0x44]
call fcn.00405658
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 0x4591f6
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 [0x457f48]
call fcn.0040597c
mov esi, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x40]
sub ebx, esi
jl 0x459043
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.00405658
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 0x458f74
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.0x458f79
jmp dword [edx*4 + 0x458f80]
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 0x458fd3
mov edx, 4
movd mm0, dword [eax]
add eax, ebx
movd mm1, dword [eax]
add eax, ebx
pxor mm2, mm2
pxor mm3, mm3
jmp 0x458fd3
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 0x458ebd
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x28]
call fcn.0045afb4
mov dword [ebp - 0x74], eax
mov esi, dword [ebp - 0x98]
mov ebx, dword [ebp - 0x90]
dec ebx
sub ebx, esi
jl 0x4591ea
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 [0x457f48]
call fcn.0040597c
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.00405658
add eax, 3
test eax, eax
jns 0x4590b3
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 0x4590e2
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 0x4591a0
je 0x4591ab
dec al
je 0x4591c9
jmp 0x4591e2
mov eax, dword [ebp - 0x74]
mov edx, dword [ebp - 0x24]
mov dword [eax + esi*4], edx
jmp 0x4591e2
mov eax, dword [ebp - 0x74]
lea edx, [eax + esi*4]
mov edi, dword [0x48f998]
mov edi, dword [edi]
mov eax, dword [ebp + 0x2c]
mov ecx, dword [eax + 0x84]
mov eax, dword [ebp - 0x24]
call edi
jmp 0x4591e2
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 0x459067
inc dword [ebp - 0x30]
dec dword [ebp - 0x78]
jne 0x458e91
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x459210
call fcn.00456d44
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x459246
lea eax, [ebp - 0x4c]
mov edx, dword [0x457f48]
mov ecx, 2
call fcn.00404ff4
lea eax, [ebp - 0x44]
mov edx, dword [0x458d34]
call fcn.00405940
ret
add byte [eax], al
add byte [eax], al
add al, byte [eax]
add byte [eax], al
mov word [ebx + 0x400045], ss
add byte [eax], al
mov eax, 0x44004593
add byte [eax], al
add byte [ecx], dl
push esp
push ebx
je 0x4594c9
je 0x4594bd
push 0x7261654e
jae 0x4594d6
push ebx
push esp
add ecx, dword [ebx + 0x138b3040]
and dl, byte [edi - 0x75]
add eax, dword [ebx + 0x1b940c0]
add byte [eax], al
add byte [ebx + 0x45938c15], cl
add al, ch
inc edi
ret