Function at 0x45e5ba
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x68
mov eax, dword [0x42b238]
mov edx, ecx
lea ebx, [esp + 0x24]
mov ecx, 0x10
mov edi, ebx
mov esi, edx
mov dword [esp + 0x64], eax
mov dword [esp + 0x18], edx
rep movsd dword es:[edi], dword [esi]
mov edx, dword [ebx + 0x24]
mov ecx, dword [ebx + 4]
movd xmm0, dword [ebx + 0x10]
movd xmm1, dword [ebx + 0x1c]
mov eax, dword [ebx]
mov esi, dword [ebx + 0x30]
mov edi, dword [ebx + 0x38]
mov ebp, dword [ebx + 0x3c]
mov dword [esp + 8], edx
mov edx, dword [ebx + 8]
mov dword [esp], ecx
mov ecx, dword [ebx + 0x20]
punpckldq xmm1, xmm0
movq xmm0, qword [ebx + 0x14]
mov dword [esp + 0x10], edx
mov edx, dword [ebx + 0x28]
mov dword [esp + 0xc], ecx
mov ecx, dword [ebx + 0x34]
punpcklqdq xmm0, xmm1
mov dword [esp + 4], edx
mov edx, dword [ebx + 0xc]
mov ebx, dword [ebx + 0x2c]
mov dword [esp + 0x14], edx
mov edx, 0xfffffffe
pshufd xmm1, xmm0, 0xe7
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ebx
movd xmm5, dword [esp + 0xc]
movd edx, xmm1
pshufd xmm1, xmm0, 0xe5
add edx, eax
movd eax, xmm0
movd ebx, xmm1
pshufd xmm1, xmm0, 0x4e
add eax, dword [esp]
add ebx, dword [esp + 0x10]
xor esi, edx
rol esi, 0x10
mov dword [esp], eax
movd eax, xmm1
xor edi, ebx
movd xmm1, esi
add eax, dword [esp + 0x14]
rol edi, 0x10
movd xmm4, edi
xor ebp, eax
rol ebp, 0x10
movd xmm2, ebp
mov ebp, dword [esp]
punpckldq xmm2, xmm1
movd xmm1, dword [esp + 0x1c]
xor ecx, ebp
rol ecx, 0x10
punpckldq xmm1, xmm5
movd xmm3, ecx
punpckldq xmm3, xmm4
movd xmm4, dword [esp + 4]
punpcklqdq xmm3, xmm2
movd xmm2, dword [esp + 8]
punpckldq xmm2, xmm4
punpcklqdq xmm2, xmm1
paddd xmm2, xmm3
pxor xmm0, xmm2
movdqa xmm1, xmm0
psrld xmm0, 0x14
pslld xmm1, 0xc
por xmm0, xmm1
pshufd xmm1, xmm0, 0xe7
movd esi, xmm0
movd ecx, xmm1
pshufd xmm1, xmm0, 0xe5
add esi, ebp
movd edi, xmm1
pshufd xmm1, xmm0, 0x4e
add ecx, edx
movd xmm6, esi
movd edx, xmm1
add edi, ebx
movd xmm1, ecx
movdqa xmm4, xmm6
add edx, eax
movd xmm7, edi
movd xmm5, edx
punpckldq xmm4, xmm7
mov edx, dword [esp + 0x20]
punpckldq xmm7, xmm5
punpckldq xmm5, xmm1
punpckldq xmm1, xmm6
punpcklqdq xmm4, xmm5
punpcklqdq xmm1, xmm7
pxor xmm4, xmm3
movdqa xmm3, xmm4
psrld xmm4, 0x18
add edx, 2
pslld xmm3, 8
cmp edx, 0x12
por xmm4, xmm3
paddd xmm2, xmm4
pxor xmm0, xmm2
pshufd xmm2, xmm2, 0x39
movdqa xmm3, xmm0
psrld xmm0, 0x19
pslld xmm3, 7
por xmm0, xmm3
pshufd xmm3, xmm4, 0x4e
paddd xmm1, xmm0
pxor xmm3, xmm1
movdqa xmm4, xmm3
psrld xmm3, 0x10
pslld xmm4, 0x10
por xmm3, xmm4
paddd xmm2, xmm3
pxor xmm0, xmm2
movdqa xmm4, xmm0
psrld xmm0, 0x14
pslld xmm4, 0xc
por xmm0, xmm4
paddd xmm1, xmm0
pshufd xmm4, xmm1, 0xe5
pxor xmm3, xmm1
movd eax, xmm1
movd dword [esp], xmm4
pshufd xmm4, xmm1, 0x4e
movd dword [esp + 0x10], xmm4
pshufd xmm4, xmm1, 0xe7
movd dword [esp + 0x14], xmm4
movdqa xmm4, xmm3
psrld xmm3, 0x18
pslld xmm4, 8
por xmm3, xmm4
paddd xmm2, xmm3
pshufd xmm6, xmm3, 0xe7
pshufd xmm5, xmm3, 0x4e
movd ebp, xmm3
pxor xmm0, xmm2
movd dword [esp + 4], xmm2
movd edi, xmm6
movd ecx, xmm5
movdqa xmm4, xmm0
psrld xmm0, 0x19
pslld xmm4, 7
por xmm0, xmm4
pshufd xmm4, xmm2, 0xe7
movd dword [esp + 8], xmm4
pshufd xmm4, xmm2, 0xe5
pshufd xmm2, xmm2, 0x4e
movd ebx, xmm4
pshufd xmm4, xmm3, 0xe5
movd dword [esp + 0xc], xmm2
movd esi, xmm4
jl 0x45e635
mov edx, dword [esp + 0xc]
mov dword [esp + 0x54], esi
mov esi, dword [esp + 8]
pshufd xmm0, xmm0, 0x93
mov dword [esp + 0x44], edx
mov edx, dword [esp + 4]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x5c], edi
mov dword [esp + 0x4c], edx
movdqu xmmword [esp + 0x34], xmm0
movdqu xmmword [esp + 0x24], xmm1
mov dword [esp + 0x60], ebp
mov dword [esp + 0x50], ebx
add eax, dword [esi]
mov dword [esp + 0x24], eax
xor eax, eax
inc eax
mov ecx, dword [esi + eax*4]
add dword [esp + eax*4 + 0x24], ecx
inc eax
cmp eax, 0x10
jne 0x45e894
movaps xmm0, xmmword [0x413bc0]
movdqa xmm1, xmmword [0x413bd0]
movdqa xmm2, xmmword [0x413be0]
xor eax, eax
movsd xmm3, qword [esp + eax*4 + 0x24]
shufps xmm3, xmm3, 0xd4
movaps xmm4, xmm3
shufps xmm3, xmm3, 0xe8
andps xmm4, xmm0
pshuflw xmm3, xmm3, 0xe8
movaps xmm5, xmm4
movaps xmm6, xmm4
psrlq xmm4, 0x18
psrlq xmm5, 8
psrlq xmm6, 0x10
pshufd xmm4, xmm4, 0xe8
pshufd xmm5, xmm5, 0xe8
pshuflw xmm4, xmm4, 0xe8
pshuflw xmm5, xmm5, 0xe8
punpckldq xmm3, xmm5
pshufd xmm5, xmm6, 0xe8
pshuflw xmm5, xmm5, 0xe8
pand xmm3, xmm1
punpckldq xmm5, xmm4
pshufd xmm3, xmm3, 0x44
pand xmm5, xmm1
pshuflw xmm3, xmm3, 0xe8
pshufd xmm4, xmm5, 0x44
pshufhw xmm3, xmm3, 0xed
movdqa xmm5, xmm2
pshuflw xmm4, xmm4, 0x84
packuswb xmm3, xmm0
pshufhw xmm4, xmm4, 0xd4
pand xmm3, xmm2
packuswb xmm4, xmm0
pandn xmm5, xmm4
por xmm3, xmm5
movq qword [esi + eax*4 + 0x40], xmm3
add eax, 2
cmp eax, 0x10
jne 0x45e8ba
mov dword [esi + 0x80], 0
push pe_nt_image_headers32
lea eax, [esp + 0x28]
push eax
call fcn.0048f5d3
add esp, 8
inc dword [esi + 0x30]
jne 0x45e97f
inc dword [esi + 0x34]
mov ecx, dword [esp + 0x64]
call fcn.00497c4a
add esp, 0x68
pop esi
pop edi
pop ebx
pop ebp
ret