Function at 0x4299f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x470
mov eax, dword [0x541a34]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x44c], eax
mov eax, dword [ebp + 0x18]
push edi
mov edi, ecx
mov dword [ebp - 0x46c], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x450], eax
mov eax, dword [ebp + 0x20]
cmp dword [edi + 0xa4], 1
mov dword [ebp - 0x470], eax
je 0x429a47
mov eax, 0xffffbf80
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d1fac
mov esp, ebp
pop ebp
ret
push esi
mov esi, dword [edi + 4]
mov dword [ebp - 0x45c], esi
lea eax, [esi - 0x10]
cmp eax, 0x3f0
ja 0x429d44
mov ecx, dword [edi + 0xa8]
call fcn.00410800
mov dword [ebp - 0x454], eax
test eax, eax
je 0x429d44
mov al, byte [eax + 8]
push ebx
movzx ebx, al
lea eax, [ebx + ebx]
mov dword [ebp - 0x458], eax
add eax, 2
cmp eax, esi
jbe 0x429aa5
mov eax, 0xffffbf80
pop ebx
pop esi
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d1fac
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x444]
mov ecx, edi
push eax
push dword [ebp - 0x450]
push dword [ebp - 0x44c]
call fcn.00429420
add esp, 0xc
test eax, eax
jne 0x429a94
mov edi, dword [ebp - 0x454]
lea ecx, [ebp - 0x468]
xorps xmm0, xmm0
mov dword [ebp - 0x460], eax
push eax
mov edx, edi
movq qword [ebp - 0x468], xmm0
call fcn.004108c0
add esp, 4
mov dword [ebp - 0x454], eax
test eax, eax
je 0x429b1a
lea ecx, [ebp - 0x468]
call fcn.00410860
mov eax, dword [ebp - 0x454]
pop ebx
pop esi
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d1fac
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x44]
xor edx, edx
push eax
push 0
mov ecx, edi
call fcn.00410990
lea eax, [ebp - 0x468]
sub esi, ebx
push eax
dec esi
lea edi, [ebp - 0x443]
add edi, ebx
lea ecx, [ebp - 0x443]
push esi
push edi
mov edx, ebx
call fcn.00429670
lea eax, [ebp - 0x468]
mov edx, esi
push eax
lea eax, [ebp - 0x443]
mov ecx, edi
push ebx
push eax
call fcn.00429670
add esp, 0x20
lea ecx, [ebp - 0x468]
call fcn.00410860
mov ch, byte [ebp - 0x444]
lea eax, [ebp - 0x443]
add eax, ebx
mov byte [ebp - 0x445], ch
xor edx, edx
test ebx, ebx
je 0x429c3a
cmp ebx, 0x20
jb 0x429c22
mov ecx, ebx
mov esi, ebx
and ecx, 0x1f
xorps xmm3, xmm3
sub esi, ecx
movaps xmm2, xmm3
lea ecx, [ebp - 0x34]
nop dword [eax]
movups xmm0, xmmword [eax]
add edx, 0x20
lea ecx, [ecx + 0x20]
movups xmm1, xmmword [ecx - 0x30]
pxor xmm1, xmm0
movups xmm0, xmmword [eax + 0x10]
add eax, 0x20
por xmm3, xmm1
movups xmm1, xmmword [ecx - 0x20]
pxor xmm1, xmm0
por xmm2, xmm1
cmp edx, esi
jb 0x429bb0
por xmm2, xmm3
movaps xmm0, xmm2
psrldq xmm0, 8
por xmm2, xmm0
movaps xmm0, xmm2
psrldq xmm0, 4
por xmm2, xmm0
movaps xmm0, xmm2
psrldq xmm0, 2
por xmm2, xmm0
movaps xmm0, xmm2
psrldq xmm0, 1
por xmm2, xmm0
movd ecx, xmm2
or cl, byte [ebp - 0x445]
mov ch, cl
mov byte [ebp - 0x445], ch
cmp edx, ebx
jae 0x429c3a
mov cl, byte [ebp + edx - 0x44]
inc edx
xor cl, byte [eax]
inc eax
or ch, cl
cmp edx, ebx
jb 0x429c26
mov byte [ebp - 0x445], ch
mov ecx, dword [ebp - 0x45c]
xor ebx, ebx
sub ecx, dword [ebp - 0x458]
xor edi, edi
add ecx, 0xfffffffe
mov dword [ebp - 0x450], ebx
xor dl, dl
mov dword [ebp - 0x44c], ecx
xor esi, esi
cmp ecx, 2
jb 0x429ca3
or dl, byte [eax + esi]
mov cl, dl
neg cl
or cl, dl
or dl, byte [eax + esi + 1]
not cl
add esi, 2
movzx ecx, cl
shr ecx, 7
add edi, ecx
mov cl, dl
neg cl
mov dword [ebp - 0x458], edi
or cl, dl
not cl
movzx ecx, cl
shr ecx, 7
add ebx, ecx
mov ecx, dword [ebp - 0x44c]
dec ecx
cmp esi, ecx
jb 0x429c62
mov ecx, dword [ebp - 0x44c]
cmp esi, ecx
jae 0x429cbe
or dl, byte [esi + eax]
mov cl, dl
neg cl
or cl, dl
not cl
movzx ecx, cl
shr ecx, 7
mov dword [ebp - 0x450], ecx
mov dl, byte [ebp - 0x445]
lea ecx, [ebx + edi]
add ecx, dword [ebp - 0x450]
add eax, ecx
mov cl, byte [eax]
inc eax
xor cl, 1
or dl, cl
je 0x429cef
pop ebx
pop esi
mov eax, 0xffffbf00
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d1fac
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x45c]
sub ecx, eax
lea ecx, [ebp + ecx - 0x444]
cmp ecx, dword [ebp + 0x24]
jbe 0x429d19
pop ebx
pop esi
mov eax, 0xffffbc00
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d1fac
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x46c]
push ecx
push eax
push dword [ebp - 0x470]
mov dword [edx], ecx
call fcn.004d5f40
add esp, 0xc
xor eax, eax
pop ebx
pop esi
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004d1fac
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov eax, 0xffffbf80
pop esi
xor ecx, ebp
pop edi
call fcn.004d1fac
mov esp, ebp
pop ebp
ret