Function at 0x10002370
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1001fba0
mov eax, dword fs:[0]
push eax
sub esp, 0x80
mov eax, dword [0x1002b130]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x88], ecx
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0x54], 0xf
mov dword [ebp - 0x58], 0
mov byte [ebp - 0x68], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x3c], 0xf
mov dword [ebp - 0x40], 0
mov byte [ebp - 0x50], 0
lea eax, [ecx + 0xe20]
mov byte [ebp - 4], 1
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.10002df0
mov esi, eax
lea eax, [ebp - 0x68]
cmp eax, esi
je 0x10002423
cmp dword [ebp - 0x54], 0x10
jb 0x10002408
push dword [ebp - 0x68]
call fcn.1000e5b0
add esp, 4
push esi
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x54], 0xf
mov dword [ebp - 0x58], 0
mov byte [ebp - 0x68], 0
call fcn.10002e60
cmp dword [ebp - 0x6c], 0x10
jb 0x10002434
push dword [ebp - 0x80]
call fcn.1000e5b0
add esp, 4
cmp dword [ebp - 0x54], 0x10
lea eax, [ebp - 0x68]
push edi
cmovae eax, dword [ebp - 0x68]
mov edi, dword [ebp - 0x88]
mov ecx, edi
mov dword [ebp - 0x84], eax
lea eax, [ebp - 0x80]
push eax
call fcn.10002df0
mov esi, eax
lea eax, [ebp - 0x50]
cmp eax, esi
je 0x1000248c
cmp dword [ebp - 0x3c], 0x10
jb 0x10002471
push dword [ebp - 0x50]
call fcn.1000e5b0
add esp, 4
push esi
lea ecx, [ebp - 0x50]
mov dword [ebp - 0x3c], 0xf
mov dword [ebp - 0x40], 0
mov byte [ebp - 0x50], 0
call fcn.10002e60
cmp dword [ebp - 0x6c], 0x10
jb 0x1000249d
push dword [ebp - 0x80]
call fcn.1000e5b0
add esp, 4
xor esi, esi
cmp dword [ebp - 0x40], esi
jle 0x10002546
lea edi, [ebp - 0x20]
jmp 0x100024b0
cmp dword [ebp - 0x3c], 0x10
lea eax, [ebp - 0x50]
cmovae eax, dword [ebp - 0x50]
mov ch, byte [eax + esi]
cmp ch, 0x2d
je 0x10002536
cmp ch, 0x7b
je 0x10002536
cmp ch, 0x7d
je 0x10002536
mov cl, ch
movzx edx, ch
sub cl, 0x30
cmp cl, 9
movzx eax, cl
cmovbe edx, eax
mov al, ch
sub al, 0x61
cmp al, 5
ja 0x100024e9
add dl, 0xa9
sub ch, 0x41
cmp ch, 5
ja 0x100024f4
add dl, 0xc9
inc esi
lea eax, [ebp - 0x50]
and dl, 0xf
cmp dword [ebp - 0x3c], 0x10
cmovae eax, dword [ebp - 0x50]
mov cl, byte [eax + esi]
mov al, cl
cmp cl, 0x30
jl 0x10002514
cmp cl, 0x39
jg 0x10002514
add al, 0xd0
cmp cl, 0x61
jl 0x10002520
cmp cl, 0x66
jg 0x10002520
add al, 0xa9
cmp cl, 0x41
jl 0x1000252c
cmp cl, 0x46
jg 0x1000252c
add al, 0xc9
and al, 0xf
shl dl, 4
xor al, dl
mov byte [edi], al
inc edi
inc esi
cmp esi, dword [ebp - 0x40]
jl 0x100024b0
mov edi, dword [ebp - 0x88]
movdqu xmm1, xmmword [ebp - 0x20]
mov ecx, dword [ebp - 0x84]
mov esi, ecx
movdqu xmmword [ebp - 0x20], xmm1
movdqa xmm0, xmm1
mov byte [ecx], 0x52
psrldq xmm0, 3
movd eax, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 2
mov byte [ecx + 4], 0x3c
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x20], al
movd eax, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 1
mov byte [ebp - 0x1f], al
movd eax, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 5
mov byte [ebp - 0x1e], al
movd eax, xmm1
mov byte [ebp - 0x1d], al
movd eax, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 4
mov byte [ebp - 0x1c], al
movd eax, xmm0
movdqa xmm0, xmm1
psrldq xmm0, 7
psrldq xmm1, 6
mov byte [ebp - 0x1b], al
movd eax, xmm0
mov byte [ebp - 0x1a], al
movd eax, xmm1
mov byte [ebp - 0x19], al
xor eax, eax
sub esi, ecx
lea esp, [esp]
mov cl, byte [edi + eax + 8]
lea edx, [ebp - 0x38]
add edx, eax
xor cl, byte [edx + esi]
mov byte [edx], cl
mov ecx, dword [ebp - 0x84]
mov cl, byte [ecx + eax + 1]
xor cl, byte [edi + eax + 9]
mov byte [edx + 1], cl
mov ecx, dword [ebp - 0x84]
mov cl, byte [ecx + eax + 2]
xor cl, byte [edi + eax + 0xa]
mov byte [edx + 2], cl
mov ecx, dword [ebp - 0x84]
mov cl, byte [ecx + eax + 3]
xor cl, byte [edi + eax + 0xb]
mov byte [edx + 3], cl
mov ecx, dword [ebp - 0x84]
mov cl, byte [ecx + eax + 4]
xor cl, byte [edi + eax + 0xc]
mov byte [edx + 4], cl
mov ecx, dword [ebp - 0x84]
mov cl, byte [ecx + eax + 5]
xor cl, byte [edi + eax + 0xd]
add eax, 6
mov byte [edx + 5], cl
cmp eax, 0x18
jl 0x100025e0
cmp dword [ebp - 0x3c], 0x10
mov eax, dword [edi]
movdqu xmm1, xmmword [ebp - 0x30]
mov dword [ebp - 0x38], eax
mov eax, dword [edi + 4]
mov dword [ebp - 0x34], eax
movdqu xmm0, xmmword [ebp - 0x38]
mov eax, dword [ebp - 0x8c]
movdqu xmmword [ebp - 0x80], xmm0
movq xmm0, qword [ebp - 0x28]
movq qword [ebp - 0x70], xmm0
movdqu xmm0, xmmword [ebp - 0x20]
pxor xmm1, xmm0
movdqu xmmword [ebp - 0x78], xmm1
movdqu xmm0, xmmword [ebp - 0x80]
unpckhpd xmm1, xmm1
movdqu xmmword [eax], xmm0
movq qword [eax + 0x10], xmm1
jb 0x100026a6
push dword [ebp - 0x50]
call fcn.1000e5b0
add esp, 4
cmp dword [ebp - 0x54], 0x10
mov dword [ebp - 0x3c], 0xf
mov dword [ebp - 0x40], 0
mov byte [ebp - 0x50], 0
jb 0x100026c9
push dword [ebp - 0x68]
call fcn.1000e5b0
add esp, 4
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1000ef8b
mov esp, ebp
pop ebp
ret 8