Function at 0x42f730
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x68
mov eax, dword [0x46c004]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov dword [ebp - 0x60], edx
mov edx, dword [ebp + 8]
push edi
mov edi, ecx
mov dword [ebp - 0x5c], edx
xor ecx, ecx
mov dword [ebp - 0x50], eax
mov eax, dword [ebp + 0x10]
add edx, 0x10
mov dword [ebp - 0x68], edi
setb cl
mov dword [ebp - 0x54], eax
neg ecx
or ecx, edx
push ecx
call fcn.00444c5f
mov ecx, dword [0x46d978]
mov ebx, eax
lea eax, [ebp - 0x34]
mov dword [ebp - 0x40], ebx
push eax
call fcn.00427890
mov esi, 0x10
lea eax, [ebp - 0x24]
cmp dword [ebp - 0x5c], esi
cmovb esi, dword [ebp - 0x5c]
push esi
push dword [ebp - 0x60]
mov dword [ebp - 0x44], esi
push eax
call fcn.00456380
add esp, 0xc
cmp esi, 0x10
jae 0x42f7f6
xor ecx, ecx
test esi, esi
je 0x42f7bd
nop dword [eax]
mov al, byte [ebp + ecx - 0x34]
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, esi
jb 0x42f7b0
lea eax, [ebp - 0x34]
add eax, esi
push edi
push eax
push eax
call fcn.0043cf98
add esi, 0x10
lea eax, [ebp - 0x34]
push esi
push eax
push ebx
call fcn.00456380
mov edx, dword [ebp - 0x50]
add esp, 0x18
mov dword [edx], ebx
mov edx, dword [ebp - 0x54]
pop edi
mov dword [edx], esi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043de43
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x40]
lea edx, [ebp - 0x24]
movups xmm0, xmmword [ebp - 0x34]
mov eax, 0x10
mov dword [ebp - 0x48], 0x10
mov dword [ebp - 0x4c], edx
lea ebx, [ebp - 0x14]
mov dword [ebp - 0x3c], ebx
lea edi, [ebp - 0x34]
mov dword [ebp - 0x38], eax
movups xmmword [ecx], xmm0
cmp esi, eax
jne 0x42f9e8
mov eax, dword [ebp - 0x5c]
sub eax, esi
mov esi, 0x10
cmp eax, esi
cmovb esi, eax
mov eax, dword [ebp - 0x44]
add eax, dword [ebp - 0x60]
push esi
push eax
push ebx
mov dword [ebp - 0x64], esi
call fcn.00456380
mov edx, dword [ebp - 0x4c]
lea ecx, [edi + 0xf]
add dword [ebp - 0x44], esi
add esp, 0xc
lea eax, [edx + 0xf]
cmp edi, eax
ja 0x42f883
cmp ecx, edx
jb 0x42f883
mov ebx, edx
mov eax, edi
sub ebx, edi
mov edx, 0x10
nop dword [eax + eax]
mov cl, byte [ebx + eax]
lea eax, [eax + 1]
xor byte [eax - 1], cl
sub edx, 1
jne 0x42f870
mov ebx, dword [ebp - 0x3c]
jmp 0x42f890
movups xmm1, xmmword [edi]
movups xmm0, xmmword [edx]
pxor xmm1, xmm0
movups xmmword [edi], xmm1
push dword [ebp - 0x68]
push edi
push edi
call fcn.0043cf98
add esp, 0xc
test esi, esi
je 0x42f993
cmp esi, 0x10
je 0x42f993
xor edx, edx
mov dword [ebp - 0x48], esi
test esi, esi
je 0x42f943
cmp esi, 0x20
jb 0x42f91e
lea eax, [edi - 1]
lea ecx, [ebx - 1]
add eax, esi
add ecx, esi
cmp ebx, eax
ja 0x42f8d2
cmp ecx, edi
jae 0x42f91e
mov ecx, esi
mov eax, ebx
mov esi, edi
and ecx, 0xffffffe0
sub esi, ebx
mov dword [ebp - 0x58], esi
mov esi, dword [ebp - 0x64]
mov ebx, dword [ebp - 0x58]
nop word [eax + eax]
movups xmm0, xmmword [eax]
lea eax, [eax + 0x20]
movups xmm1, xmmword [ebx + eax - 0x20]
pxor xmm1, xmm0
movups xmmword [eax - 0x20], xmm1
movups xmm1, xmmword [edi + edx + 0x10]
add edx, 0x20
movups xmm0, xmmword [eax - 0x10]
pxor xmm1, xmm0
movups xmmword [eax - 0x10], xmm1
cmp edx, ecx
jb 0x42f8f0
mov ebx, dword [ebp - 0x3c]
cmp edx, esi
jae 0x42f943
mov eax, edi
lea ecx, [edx + ebx]
sub eax, ebx
mov ebx, esi
mov dword [ebp - 0x58], eax
sub ebx, edx
mov esi, eax
mov al, byte [ecx + esi]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
sub ebx, 1
jne 0x42f932
mov esi, dword [ebp - 0x64]
cmp esi, 0x10
jae 0x42f96e
mov eax, dword [ebp - 0x3c]
mov ebx, edi
mov edx, 0x10
sub ebx, eax
sub edx, esi
lea ecx, [eax + esi]
nop dword [eax]
mov al, byte [ecx + ebx]
lea ecx, [ecx + 1]
mov byte [ecx - 1], al
sub edx, 1
jne 0x42f960
push dword [ebp - 0x68]
mov ebx, dword [ebp - 0x3c]
push ebx
push ebx
call fcn.0043cf98
mov eax, dword [ebp - 0x38]
add esp, 0xc
mov ecx, dword [ebp - 0x40]
movups xmm0, xmmword [ebx]
movups xmmword [ecx + eax], xmm0
add eax, 0x10
mov dword [ebp - 0x38], eax
jmp 0x42f999
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x38]
push dword [ebp - 0x48]
add eax, ecx
push edi
push eax
call fcn.00456380
mov ecx, dword [ebp - 0x38]
mov eax, ebx
add ecx, dword [ebp - 0x48]
add esp, 0xc
mov ebx, dword [ebp - 0x4c]
cmp esi, 0x10
mov esi, dword [ebp - 0x44]
mov dword [ebp - 0x4c], edi
mov edi, eax
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x3c], ebx
je 0x42f826
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x40]
pop edi
pop esi
mov dword [edx], eax
mov edx, dword [ebp - 0x54]
pop ebx
mov dword [edx], ecx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043de43
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x50]
pop edi
pop esi
pop ebx
mov dword [edx], ecx
mov edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 4]
xor ecx, ebp
mov dword [edx], eax
call fcn.0043de43
mov esp, ebp
pop ebp
ret