Function at 0x10002ca2
Capabilities:
Encode data using xor

Disassembly:
push 0x18
mov eax, 0x1003dbd8
call fcn.1003d77e
xor edi, edi
inc edi
mov dword [ebp - 0x10], edi
mov esi, dword [ebp + 8]
mov ecx, esi
push 0x10042857
call fcn.10003d99
xor edx, edx
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], edi
mov edi, dword [0x10057860]
test edi, edi
je case.default.0x10002e33
cmp byte [0x100578dc], dl
je 0x10002d1e
mov ecx, 0x10b8134
call fcn.1000d24b
mov ebx, eax
test ebx, ebx
je 0x10002d1c
push 4
push ebx
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10002d1c
push 4
add ebx, 0x6e4
push ebx
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
xor edx, edx
test eax, eax
jne 0x10002d1e
mov ax, word [ebx]
mov word [edi + 0x3e], ax
jmp 0x10002d1e
xor edx, edx
movzx eax, word [edi + 0x3e]
mov ecx, 0xc9
cmp eax, ecx
ja 0x10002e1e
je case.0x10002e33.205
sub eax, 0x65
cmp eax, 0xb
ja case.default.0x10002e33
movzx eax, byte [eax + 0x10002efa]
jmp dword [eax*4 + 0x10002eea]
mov cl, 0x1e
mov dword [ebp - 0x24], 0x6c7f551e
mov dword [ebp - 0x20], 0x493e6d6b
mov eax, edx
mov dword [ebp - 0x1c], 0x776c6c7f
mov word [ebp - 0x18], 0x6c71
mov byte [ebp - 0x16], dl
xor byte [ebp + eax - 0x23], cl
inc eax
cmp eax, 0xd
jae 0x10002d80
mov cl, byte [ebp - 0x24]
jmp 0x10002d71
mov byte [ebp - 0x16], dl
jmp 0x10002ed3
mov cl, 0x3d
mov dword [ebp - 0x20], 0x4f5c763d
mov dword [ebp - 0x1c], 0x6f1d4e48
mov eax, edx
mov dword [ebp - 0x18], 0x58485a52
mov byte [ebp - 0x14], dl
xor byte [ebp + eax - 0x1f], cl
inc eax
cmp eax, 0xb
jae 0x10002db3
mov cl, byte [ebp - 0x20]
jmp 0x10002da4
mov byte [ebp - 0x14], dl
lea eax, [ebp - 0x1f]
jmp 0x10002ed6
mov cl, 0x26
mov dword [ebp - 0x20], 0x54476d26
mov dword [ebp - 0x1c], 0x6b065553
mov eax, edx
mov dword [ebp - 0x18], 0x434147
xor byte [ebp + eax - 0x1f], cl
inc eax
cmp eax, 0xa
jae 0x10002de6
mov cl, byte [ebp - 0x20]
jmp 0x10002dd7
mov byte [ebp - 0x15], dl
jmp 0x10002db6
mov cl, 0x52
mov dword [ebp - 0x20], 0x20331952
mov dword [ebp - 0x1c], 0x2722127
mov eax, edx
mov dword [ebp - 0x18], 0x21373b20
mov word [ebp - 0x14], 0x26
xor byte [ebp + eax - 0x1f], cl
inc eax
cmp eax, 0xc
jae 0x10002e19
mov cl, byte [ebp - 0x20]
jmp 0x10002e0a
mov byte [ebp - 0x13], dl
jmp 0x10002db6
sub eax, 0xca
cmp eax, 0xa
ja case.default.0x10002e33
movzx eax, byte [eax + 0x10002f16]
jmp dword [eax*4 + 0x10002f06]
movaps xmm0, xmmword [0x1004d210]
mov ecx, edx
movups xmmword [ebp - 0x24], xmm0
mov word [ebp - 0x14], 0x55
mov al, byte [ebp - 0x24]
xor byte [ebp + ecx - 0x23], al
inc ecx
cmp ecx, 0x10
jb 0x10002e4d
mov byte [ebp - 0x13], dl
jmp 0x10002ed3
movaps xmm0, xmmword [0x1004ca30]
mov ecx, edx
movups xmmword [ebp - 0x24], xmm0
mov al, byte [ebp - 0x24]
xor byte [ebp + ecx - 0x23], al
inc ecx
cmp ecx, 0xe
jb 0x10002e6c
mov byte [ebp - 0x15], dl
jmp 0x10002ed3
mov cl, 0x7d
mov dword [ebp - 0x24], 0x5d11387d
mov dword [ebp - 0x20], 0x1c0f1230
mov eax, edx
mov dword [ebp - 0x1c], 0x1c305d19
mov word [ebp - 0x18], 0x181a
mov byte [ebp - 0x16], dl
xor byte [ebp + eax - 0x23], cl
inc eax
cmp eax, 0xd
jae 0x10002d80
mov cl, byte [ebp - 0x24]
jmp 0x10002ea0
movaps xmm0, xmmword [0x1004d480]
mov ecx, edx
movups xmmword [ebp - 0x24], xmm0
mov byte [ebp - 0x14], dl
mov al, byte [ebp - 0x24]
xor byte [ebp + ecx - 0x23], al
inc ecx
cmp ecx, 0xf
jb 0x10002ec3
mov byte [ebp - 0x14], dl
lea eax, [ebp - 0x23]
push eax
mov ecx, esi
call fcn.10003b49
mov eax, esi
call fcn.1003d75b
ret 4