Function at 0x42a74b
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1dc
push ebx
push esi
push edi
mov esi, 0x114
mov dword [ebp - 0x98], ecx
push esi
xor ebx, ebx
lea eax, [ebp - 0x1d8]
push ebx
push eax
call fcn.004436b0
add esp, 0xc
lea eax, [ebp - 0x1d8]
push esi
push ebx
push eax
call fcn.004436b0
add esp, 0xc
mov dword [ebp - 0x1d8], esi
lea eax, [ebp - 0x1d8]
push eax
call dword [0x46d154]
cmp dword [ebp - 0x1d4], 6
jne 0x42a7af
cmp dword [ebp - 0x1d0], 2
mov byte [ebp - 1], 1
jae 0x42a7b2
mov byte [ebp - 1], bl
mov al, 0x2f
mov dword [ebp - 0x25], 0xa5b1a62f
mov dword [ebp - 0x21], 0xbcb3a4bc
mov ecx, ebx
mov dword [ebp - 0x1d], 0xbcb4feb9
mov word [ebp - 0x19], 0xbc
not al
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0xc
jae 0x42a7e2
mov al, byte [ebp - 0x25]
jmp 0x42a7d1
lea eax, [ebp - 0x24]
mov byte [ebp - 0x18], bl
push eax
call dword [0x46d1ac]
mov edi, eax
mov dword [ebp - 0x9c], edi
test edi, edi
je 0x42accb
movaps xmm0, xmmword [0x47f160]
mov ecx, ebx
movups xmmword [ebp - 0xbd], xmm0
mov al, byte [ebp - 0xbd]
not al
xor byte [ebp + ecx - 0xbc], al
inc ecx
cmp ecx, 0xe
jb 0x42a80f
mov esi, dword [0x46d1a4]
lea eax, [ebp - 0xbc]
push eax
push edi
mov byte [ebp - 0xae], bl
call esi
movaps xmm0, xmmword [0x47f8f0]
mov ecx, ebx
push 0xf
mov byte [ebp - 0x9d], bl
mov dword [ebp - 0x60], eax
movups xmmword [ebp - 0xad], xmm0
pop ebx
mov al, byte [ebp - 0xad]
not al
xor byte [ebp + ecx - 0xac], al
inc ecx
cmp ecx, ebx
jb 0x42a856
lea eax, [ebp - 0xac]
mov byte [ebp - 0x9d], 0
push eax
push edi
call esi
movaps xmm0, xmmword [0x47fb70]
xor ecx, ecx
mov dword [ebp - 0x78], eax
movups xmmword [ebp - 0x91], xmm0
mov dword [ebp - 0x81], 0xfce2eafb
mov byte [ebp - 0x7d], 0
mov al, byte [ebp - 0x91]
not al
xor byte [ebp + ecx - 0x90], al
inc ecx
cmp ecx, 0x13
jb 0x42a89c
lea eax, [ebp - 0x90]
mov byte [ebp - 0x7d], 0
push eax
push edi
call esi
mov dword [ebp - 0x5c], eax
mov cl, 0x4c
mov dword [ebp - 0x33], 0xc6d2e54c
xor eax, eax
mov dword [ebp - 0x2f], 0xd6f4c7df
mov dword [ebp - 0x2b], 0xd6c7fac7
mov word [ebp - 0x27], 0xde
not cl
xor byte [ebp + eax - 0x32], cl
inc eax
cmp eax, 0xc
jae 0x42a8f2
mov cl, byte [ebp - 0x33]
jmp 0x42a8e1
lea eax, [ebp - 0x32]
mov byte [ebp - 0x26], 0
push eax
push edi
call esi
mov dword [ebp - 0x70], eax
xor eax, eax
mov byte [ebp - 0x41], bl
mov dword [ebp - 0x40], 0x9c8591a6
mov dword [ebp - 0x3c], 0x8495b784
mov dword [ebp - 0x38], 0x9d9584b9
mov byte [ebp - 0x34], 0
not bl
xor byte [ebp + eax - 0x40], bl
inc eax
cmp eax, 0xc
jae 0x42a92f
mov bl, byte [ebp - 0x41]
jmp 0x42a91e
lea eax, [ebp - 0x40]
xor ebx, ebx
push eax
push edi
mov byte [ebp - 0x34], bl
call esi
mov dword [ebp - 0x6c], eax
mov cl, 7
mov dword [ebp - 0x17], 0x8d99ae07
mov eax, ebx
mov dword [ebp - 0x13], 0x8abe8c94
mov word [ebp - 0xf], 0x9d9d
mov byte [ebp - 0xd], bl
not cl
xor byte [ebp + eax - 0x16], cl
inc eax
cmp eax, 9
jae 0x42a96a
mov cl, byte [ebp - 0x17]
jmp 0x42a959
lea eax, [ebp - 0x16]
mov byte [ebp - 0xd], bl
push eax
push edi
call esi
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x7c], eax
test ecx, ecx
je 0x42acc4
mov ebx, dword [ebp - 0x78]
test ebx, ebx
je 0x42acc4
mov esi, dword [ebp - 0x5c]
test esi, esi
je 0x42acc4
test eax, eax
je 0x42acc4
cmp dword [ebp - 0x70], 0
je 0x42acc4
cmp dword [ebp - 0x6c], 0
je 0x42acc4
and dword [ebp - 8], 0
lea eax, [ebp - 8]
push eax
push 0
push 0x489a50
call ecx
test eax, eax
js 0x42acc4
and dword [ebp - 0x68], 0
lea eax, [ebp - 0x58]
and dword [ebp - 0x58], 0
push eax
lea eax, [ebp - 0x68]
push eax
push 0x200
push dword [ebp - 8]
call esi
test eax, eax
js 0x42acbe
and dword [ebp - 0x74], 0
cmp dword [ebp - 0x68], 0
jbe 0x42acb8
mov edi, dword [ebp - 0x7c]
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], edx
mov esi, dword [ebp - 0x58]
xor ebx, ebx
push 0x10
push 0x489a40
cmp byte [ebp - 1], bl
je 0x42ab13
add esi, edx
push esi
mov dword [ebp - 0xc], esi
call fcn.004427a1
add esp, 0xc
test eax, eax
jne 0x42ac8d
push dword [esi + 0x10]
call dword [0x46d158]
lea eax, [eax*2 + 2]
push eax
call fcn.004473a2
pop ecx
push dword [esi + 0x10]
mov dword [ebp - 0x50], eax
push eax
call dword [0x46d150]
mov ecx, dword [esi + 0x14]
add ecx, 0x20
push ecx
call dword [0x46d158]
lea eax, [eax*2 + 2]
push eax
call fcn.004473a2
pop ecx
mov ecx, dword [esi + 0x14]
add ecx, 0x20
mov dword [ebp - 0x54], eax
push ecx
push eax
call dword [0x46d150]
mov ecx, dword [esi + 0x18]
add ecx, 0x20
push ecx
call dword [0x46d158]
lea eax, [eax*2 + 2]
push eax
call fcn.004473a2
pop ecx
mov ecx, dword [ebp - 0xc]
mov esi, eax
mov dword [ebp - 0x64], esi
mov ecx, dword [ecx + 0x18]
add ecx, 0x20
push ecx
push esi
call dword [0x46d150]
xor ecx, ecx
lea eax, [ebp - 0x48]
push eax
mov eax, dword [ebp - 0xc]
push ecx
push ecx
push ecx
push dword [eax + 0x18]
mov dword [ebp - 0x48], ecx
push dword [eax + 0x14]
push eax
push dword [ebp - 8]
call dword [ebp - 0x6c]
test eax, eax
js 0x42ac01
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0x1c]
add eax, 0x20
push eax
call dword [0x46d158]
lea eax, [eax*2 + 2]
push eax
call fcn.004473a2
pop ecx
mov ecx, dword [ebp - 0x48]
mov ebx, eax
mov ecx, dword [ecx + 0x1c]
add ecx, 0x20
push ecx
push ebx
call dword [0x46d150]
push dword [ebp - 0x48]
jmp 0x42abff
add esi, ecx
push esi
mov dword [ebp - 0xc], esi
call fcn.004427a1
add esp, 0xc
test eax, eax
jne 0x42ac8d
push dword [esi + 0x10]
call dword [0x46d158]
lea eax, [eax*2 + 2]
push eax
call fcn.004473a2
pop ecx
push dword [esi + 0x10]
mov dword [ebp - 0x50], eax
push eax
call dword [0x46d150]
mov eax, dword [esi + 0x14]
add eax, 0x20
push eax
call dword [0x46d158]
lea eax, [eax*2 + 2]
push eax
call fcn.004473a2
pop ecx
mov ecx, eax
mov eax, dword [esi + 0x14]
add eax, 0x20
mov dword [ebp - 0x54], ecx
push eax
push ecx
call dword [0x46d150]
mov eax, dword [esi + 0x18]
add eax, 0x20
push eax
call dword [0x46d158]
lea eax, [eax*2 + 2]
push eax
call fcn.004473a2
mov esi, eax
mov eax, dword [ebp - 0xc]
pop ecx
mov dword [ebp - 0x64], esi
mov eax, dword [eax + 0x18]
add eax, 0x20
push eax
push esi
call dword [0x46d150]
xor ecx, ecx
lea eax, [ebp - 0x4c]
push eax
mov eax, dword [ebp - 0xc]
push ecx
push ecx
mov dword [ebp - 0x4c], ecx
push dword [eax + 0x18]
push dword [eax + 0x14]
push eax
push dword [ebp - 8]
call dword [ebp - 0x70]
test eax, eax
js 0x42ac01
mov eax, dword [ebp - 0x4c]
mov eax, dword [eax + 0x1c]
add eax, 0x20
push eax
call dword [0x46d158]
lea eax, [eax*2 + 2]
push eax
call fcn.004473a2
mov ebx, eax
mov eax, dword [ebp - 0x4c]
pop ecx
mov eax, dword [eax + 0x1c]
add eax, 0x20
push eax
push ebx
call dword [0x46d150]
push dword [ebp - 0x4c]
call edi
mov eax, dword [ebp - 0x50]
test eax, eax
je 0x42ac69
cmp dword [ebp - 0x54], 0
je 0x42ac62
test esi, esi
je 0x42ac62
test ebx, ebx
je 0x42ac62
push 0x47dd90
push eax
call dword [0x46d2d8]
test eax, eax
je 0x42ac5f
push ebx
call dword [0x46d158]
push dword [ebp - 0x64]
lea esi, [eax*2 + 2]
call dword [0x46d158]
mov ecx, dword [ebp - 0x98]
push esi
mov esi, dword [ebp - 0x64]
push ebx
lea eax, [eax*2 + 2]
push eax
push esi
push dword [ebp - 0x54]
push 6
pop edx
call fcn.0042a17a
add esp, 0x14
mov eax, dword [ebp - 0x50]
push eax
call fcn.004465c5
pop ecx
mov eax, dword [ebp - 0x54]
test eax, eax
je 0x42ac77
push eax
call fcn.004465c5
pop ecx
test esi, esi
je 0x42ac82
push esi
call fcn.004465c5
pop ecx
test ebx, ebx
je 0x42ac8d
push ebx
call fcn.004465c5
pop ecx
mov eax, dword [ebp - 0x74]
mov edx, dword [ebp - 0x5c]
inc eax
mov ecx, dword [ebp - 0x60]
add edx, 0x38
add ecx, 0x34
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x60], ecx
cmp eax, dword [ebp - 0x68]
jb 0x42aa0a
mov edi, dword [ebp - 0x9c]
mov ebx, dword [ebp - 0x78]
push dword [ebp - 0x58]
call dword [ebp - 0x7c]
lea eax, [ebp - 8]
push eax
call ebx
push edi
call dword [0x46d198]
pop edi
pop esi
pop ebx
leave
ret