Function at 0x10003ce4
Capabilities:
Encode data using xor

Disassembly:
push 0x9c
mov eax, 0x100462ab
call fcn.10044a95
mov edi, dword [ebp + 8]
mov ecx, edi
mov esi, dword [edi + 8]
push esi
call fcn.10003215
inc esi
mov ecx, edi
push esi
mov bl, al
mov dword [edi + 8], esi
call fcn.100038c0
add esi, 4
mov dword [ebp - 0x10], eax
push esi
mov ecx, edi
mov dword [edi + 8], esi
call fcn.100038c0
lea ecx, [esi + 4]
mov dword [ebp + 8], eax
mov dword [edi + 8], ecx
mov edx, dword [0x1005afc4]
test edx, edx
je 0x10003dc4
cmp bl, 1
je 0x10003d49
cmp bl, 2
je 0x10003d49
mov ecx, dword [0x1005afc0]
jmp 0x10003d96
mov ecx, dword [edx + 0x94]
test ecx, ecx
je 0x10003d62
push eax
call fcn.1003d998
mov edx, dword [0x1005afc4]
mov eax, dword [ebp + 8]
mov ecx, dword [edx + 0x58]
test ecx, ecx
je 0x10003d75
push eax
call fcn.1002313e
mov edx, dword [0x1005afc4]
mov ecx, dword [0x1005afc0]
test ecx, ecx
je 0x10003d93
push dword [ebp + 8]
call fcn.10013f98
mov edx, dword [0x1005afc4]
mov ecx, dword [0x1005afc0]
mov eax, dword [ebp + 8]
cmp bl, 3
je 0x10003da0
cmp bl, 4
jne 0x10003dc4
mov edx, dword [edx + 0x94]
test edx, edx
je 0x10003db8
push eax
mov ecx, edx
call fcn.1003d932
mov ecx, dword [0x1005afc0]
test ecx, ecx
je 0x10003dc4
push dword [ebp + 8]
call fcn.10013ded
movzx eax, bl
sub eax, 1
je 0x10003f77
sub eax, 1
je 0x10003f0b
sub eax, 1
je 0x10003e7f
sub eax, 1
jne 0x10004005
movaps xmm0, xmmword [0x1004a570]
xor ebx, ebx
push dword [ebp - 0x10]
movups xmmword [ebp - 0x60], xmm0
mov dword [ebp - 0x50], 0x63282e23
mov ecx, ebx
mov byte [ebp - 0x4c], bl
mov al, byte [ebp - 0x60]
xor byte [ebp + ecx - 0x5f], al
inc ecx
cmp ecx, 0x13
jb 0x10003e07
sub esp, 0x18
mov byte [ebp - 0x4c], bl
lea eax, [ebp - 0x5f]
mov ecx, esp
push eax
call fcn.100012e0
lea eax, [ebp - 0xa8]
push eax
call fcn.1001b71b
add esp, 0x20
cmp dword [eax + 0x14], 0x10
mov dword [ebp - 4], 6
jb 0x10003e43
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x90]
call fcn.100012e0
lea eax, [ebp - 0x90]
mov byte [ebp - 4], 7
push 0xffff3b3b
push eax
call fcn.100043f2
pop ecx
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x90]
call fcn.10001cd4
lea ecx, [ebp - 0xa8]
jmp 0x10003ffd
movaps xmm0, xmmword [0x1004a5a0]
xor ebx, ebx
push dword [ebp - 0x10]
movups xmmword [ebp - 0x48], xmm0
mov dword [ebp - 0x38], 0x3d303d1e
mov ecx, ebx
mov dword [ebp - 0x34], 0x72393f32
mov byte [ebp - 0x30], bl
mov al, byte [ebp - 0x48]
xor byte [ebp + ecx - 0x47], al
inc ecx
cmp ecx, 0x17
jb 0x10003ea2
sub esp, 0x18
mov byte [ebp - 0x30], bl
lea eax, [ebp - 0x47]
mov ecx, esp
push eax
call fcn.100012e0
lea eax, [ebp - 0x78]
push eax
call fcn.1001b71b
add esp, 0x20
cmp dword [eax + 0x14], 0x10
mov dword [ebp - 4], 4
jb 0x10003edb
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x2c]
call fcn.100012e0
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 5
push 0xff6565ff
push eax
call fcn.100043f2
pop ecx
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x2c]
call fcn.10001cd4
lea ecx, [ebp - 0x78]
jmp 0x10003ffd
movaps xmm0, xmmword [0x1004a580]
xor ebx, ebx
push dword [ebp - 0x10]
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x18], 0x51e0c2e
mov ecx, ebx
mov word [ebp - 0x14], 0x43
mov al, byte [ebp - 0x28]
xor byte [ebp + ecx - 0x27], al
inc ecx
cmp ecx, 0x14
jb 0x10003f2a
sub esp, 0x18
mov byte [ebp - 0x13], bl
lea eax, [ebp - 0x27]
mov ecx, esp
push eax
call fcn.100012e0
lea eax, [ebp - 0x48]
push eax
call fcn.1001b71b
add esp, 0x20
cmp dword [eax + 0x14], 0x10
mov dword [ebp - 4], 2
jb 0x10003f63
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x78]
call fcn.100012e0
mov byte [ebp - 4], 3
push 0xffff3b3b
jmp 0x10003fe4
movaps xmm0, xmmword [0x1004a590]
xor ebx, ebx
push dword [ebp - 0x10]
movups xmmword [ebp - 0x2c], xmm0
mov dword [ebp - 0x1c], 0x2c78646b
mov ecx, ebx
mov dword [ebp - 0x18], 0x647f6d4f
mov word [ebp - 0x14], 0x22
mov al, byte [ebp - 0x2c]
xor byte [ebp + ecx - 0x2b], al
inc ecx
cmp ecx, 0x18
jb 0x10003f9d
sub esp, 0x18
mov byte [ebp - 0x13], bl
lea eax, [ebp - 0x2b]
mov ecx, esp
push eax
call fcn.100012e0
lea eax, [ebp - 0x48]
push eax
call fcn.1001b71b
add esp, 0x20
cmp dword [eax + 0x14], 0x10
mov dword [ebp - 4], ebx
jb 0x10003fd2
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x78]
call fcn.100012e0
mov byte [ebp - 4], 1
push 0xff6565ff
lea eax, [ebp - 0x78]
push eax
call fcn.100043f2
pop ecx
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x78]
call fcn.10001cd4
lea ecx, [ebp - 0x48]
push ebx
push 1
call fcn.10001cd4
call fcn.10044a6f
ret