Function at 0x1003dea0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x12c
mov eax, dword [0x11ad127c]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0xb0], ecx
push ebx
mov ebx, edx
mov dword [ebp - 0xb4], ebx
push esi
push edi
test ecx, ecx
je 0x1003e288
test ebx, ebx
je 0x1003e288
mov eax, dword [0x11d21ffc]
sub eax, 0
je 0x1003e288
sub eax, 1
je 0x1003df06
sub eax, 1
je 0x1003e24b
mov eax, 0x80004005
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1045066c
mov esp, ebp
pop ebp
ret
mov eax, 0x11cd3040
xor edi, edi
mov dword [ebp - 0xac], eax
mov edx, eax
mov esi, 0xc
mov eax, ecx
nop dword [eax]
mov ecx, dword [edx]
cmp ecx, dword [eax]
jne 0x1003e25e
add edx, 4
add eax, 4
sub esi, 4
jae 0x1003df20
mov eax, dword [ebp - 0xb0]
mov edx, 4
shl edi, 5
movups xmm0, xmmword [eax]
mov ebx, dword [edi + 0x11cd3040]
lea esi, [edi + 0x11cd3051]
xor edi, edi
movups xmmword [ebp - 0xf8], xmm0
movups xmm0, xmmword [0x11d22000]
movups xmmword [ebp - 0x30], xmm0
lea ecx, [edi + edi]
mov eax, ebx
shr eax, cl
lea edi, [edi + 4]
movzx ecx, byte [esi - 1]
lea esi, [esi + 4]
movzx eax, al
xor ecx, dword [eax*4 + 0x10f2c380]
movzx eax, byte [ecx*4 + 0x10f2c780]
lea ecx, [edx - 2]
mov byte [ebp + edi - 0x1c], al
mov eax, ebx
shr eax, cl
movzx ecx, byte [esi - 4]
movzx eax, al
xor ecx, dword [eax*4 + 0x10f2c380]
movzx eax, byte [ecx*4 + 0x10f2c780]
mov ecx, edx
mov byte [ebp + edi - 0x1b], al
mov eax, ebx
shr eax, cl
movzx ecx, byte [esi - 3]
movzx eax, al
xor ecx, dword [eax*4 + 0x10f2c380]
movzx eax, byte [ecx*4 + 0x10f2c780]
lea ecx, [edx + 2]
mov byte [ebp + edi - 0x1a], al
add edx, 8
mov eax, ebx
shr eax, cl
movzx ecx, byte [esi - 2]
movzx eax, al
xor ecx, dword [eax*4 + 0x10f2c380]
movzx eax, byte [ecx*4 + 0x10f2c780]
mov byte [ebp + edi - 0x19], al
cmp edx, 0x24
jb 0x1003df66
push 0x40
lea eax, [ebp - 0x88]
push 0
push eax
call fcn.10425c00
movaps xmm2, xmmword [0x1122e150]
add esp, 0xc
movups xmm0, xmmword [ebp - 0x18]
movaps xmm3, xmmword [0x1122e3f0]
movaps xmm1, xmm2
pxor xmm1, xmm0
movups xmmword [ebp - 0x18], xmm1
push 0x60
movaps xmm1, xmm3
pxor xmm1, xmm0
movups xmm0, xmmword [ebp - 0x78]
movups xmmword [ebp - 0x108], xmm1
movaps xmm1, xmm2
pxor xmm1, xmm0
movups xmmword [ebp - 0xc8], xmm1
movaps xmm1, xmm3
pxor xmm1, xmm0
movups xmm0, xmmword [ebp - 0x68]
movups xmmword [ebp - 0x118], xmm1
movaps xmm1, xmm2
pxor xmm1, xmm0
movups xmmword [ebp - 0xd8], xmm1
movaps xmm1, xmm3
pxor xmm1, xmm0
movups xmm0, xmmword [ebp - 0x58]
movups xmmword [ebp - 0x128], xmm1
pxor xmm2, xmm0
pxor xmm3, xmm0
movups xmmword [ebp - 0xe8], xmm2
movups xmmword [ebp - 0x48], xmm3
call fcn.10450898
movups xmm0, xmmword [ebp - 0x18]
mov esi, eax
mov dword [ebp - 0xa8], 0x67452301
add esp, 4
mov dword [ebp - 0xa4], 0xefcdab89
lea edx, [ebp - 0x88]
mov dword [ebp - 0xa0], 0x98badcfe
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0x9c], 0x10325476
movups xmmword [esi], xmm0
mov dword [ebp - 0x98], 0xc3d2e1f0
movups xmm0, xmmword [ebp - 0xc8]
mov dword [ebp - 0x90], 0x300
mov dword [ebp - 0x8c], 0
movups xmmword [esi + 0x10], xmm0
movups xmm0, xmmword [ebp - 0xd8]
movups xmmword [esi + 0x20], xmm0
movups xmm0, xmmword [ebp - 0xe8]
movups xmmword [esi + 0x30], xmm0
movups xmm0, xmmword [ebp - 0xf8]
movups xmmword [esi + 0x40], xmm0
movups xmm0, xmmword [ebp - 0x30]
movups xmmword [esi + 0x50], xmm0
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x88], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [ebp - 0x78], xmm0
movups xmm0, xmmword [esi + 0x20]
movups xmmword [ebp - 0x68], xmm0
movups xmm0, xmmword [esi + 0x30]
movups xmmword [ebp - 0x58], xmm0
call fcn.1003ca40
movups xmm0, xmmword [esi + 0x40]
lea edx, [ebp - 0xa8]
lea ecx, [ebp - 0x30]
movups xmmword [ebp - 0x88], xmm0
movups xmm0, xmmword [esi + 0x50]
movups xmmword [ebp - 0x78], xmm0
call fcn.1003db80
push esi
call fcn.10450877
movups xmm0, xmmword [ebp - 0x30]
mov esi, dword [ebp - 0x20]
add esp, 4
mov dword [ebp - 0xa8], 0x67452301
movups xmm1, xmmword [ebp - 0x108]
lea edx, [ebp - 0x88]
mov dword [ebp - 0xa4], 0xefcdab89
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0xa0], 0x98badcfe
movups xmmword [ebp - 0x88], xmm1
mov dword [ebp - 0x9c], 0x10325476
movups xmm1, xmmword [ebp - 0x118]
mov dword [ebp - 0x98], 0xc3d2e1f0
mov dword [ebp - 0x90], 0x2a0
movups xmmword [ebp - 0x78], xmm1
mov dword [ebp - 0x8c], 0
movups xmm1, xmmword [ebp - 0x128]
movups xmmword [ebp - 0x68], xmm1
movups xmm1, xmmword [ebp - 0x48]
movups xmmword [ebp - 0x58], xmm1
call fcn.1003ca40
lea edx, [ebp - 0xa8]
mov dword [ebp - 0x78], esi
lea ecx, [ebp - 0x48]
movups xmmword [ebp - 0x88], xmm0
call fcn.1003db80
mov ebx, dword [ebp - 0xb4]
lea ecx, [ebp - 0x48]
mov edx, 0x10
nop word [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [ebx]
jne 0x1003e27e
add ecx, 4
add ebx, 4
sub edx, 4
jae 0x1003e230
mov dword [0x11d21ffc], 2
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1045066c
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0xac]
inc edi
add eax, 0x20
mov dword [ebp - 0xac], eax
cmp edi, 0x14
jae 0x1003e288
mov ecx, dword [ebp - 0xb0]
jmp 0x1003df13
mov dword [0x11d21ffc], 0
mov ecx, dword [ebp - 4]
mov eax, 0x80070057
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1045066c
mov esp, ebp
pop ebp
ret