Function at 0x10010373
Capabilities:
Encode data using xor

Disassembly:
push 0x5c
mov eax, 0x10030b69
call fcn.1002fc16
mov ebx, ecx
xor edx, edx
mov esi, 0xe10
push 0x3c
pop edi
cmp byte [ebx + 0x20], dl
je 0x10010530
mov ecx, dword [ebx + 0x24]
test ecx, ecx
jle 0x100103a1
dec ecx
mov dword [ebx + 0x24], ecx
test ecx, ecx
js 0x10010521
mov eax, ecx
cdq
idiv esi
mov eax, edx
cdq
idiv edi
mov esi, eax
mov eax, ecx
cdq
idiv edi
xor eax, eax
lea edi, [ebp - 0x28]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], al
push 0xa
pop ecx
mov dword [ebp - 4], eax
push edx
push esi
cmp esi, ecx
jae 0x1001043a
cmp edx, ecx
jae 0x10010414
push 0xa
pop edx
mov cl, 0x30
mov dword [ebp - 0x34], 0x54150030
mov byte [ebp - 0x30], dl
mov dword [ebp - 0x2f], 0x541500
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 7
jae 0x10010405
mov cl, byte [ebp - 0x34]
jmp 0x100103f6
xor edx, edx
mov byte [ebp - 0x2c], dl
sub esp, 0x18
lea eax, [ebp - 0x33]
mov ecx, esp
jmp 0x1001047c
mov cl, 0x35
mov dword [ebp - 0x34], 0x51100535
mov dword [ebp - 0x30], 0x51100f
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x10010433
mov cl, byte [ebp - 0x34]
jmp 0x10010424
xor edx, edx
mov byte [ebp - 0x2d], dl
jmp 0x1001040a
cmp edx, ecx
jae 0x1001045d
mov cl, 0x55
mov dword [ebp - 0x34], 0x6f317055
mov dword [ebp - 0x30], 0x317065
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x10010433
mov cl, byte [ebp - 0x34]
jmp 0x1001044e
sub esp, 0x18
mov dword [ebp - 0x34], 0x3b652401
lea ecx, [ebp - 0x34]
mov word [ebp - 0x30], 0x6524
mov byte [ebp - 0x2e], al
mov esi, esp
call fcn.10004752
mov ecx, esi
push eax
call fcn.10003ec3
lea eax, [ebp - 0x50]
push eax
call fcn.10003d99
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.10004988
lea ecx, [ebp - 0x50]
call fcn.100026bd
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [0x10037f30]
cmova eax, dword [ebp - 0x28]
xor edx, edx
push eax
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0x735d0b75
mov ecx, edx
mov byte [ebp - 0x3c], dl
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x13
jb 0x100104c4
sub esp, 0x18
mov byte [ebp - 0x3c], dl
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.10003ec3
lea eax, [ebp - 0x68]
push eax
call fcn.10003d99
add esp, 0x20
mov byte [ebp - 4], 1
mov edx, eax
mov ecx, dword [ebx + 8]
call fcn.10008e24
lea ecx, [ebp - 0x68]
call fcn.100026bd
or dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x14]
cmp edx, 0xf
jbe 0x10010519
mov ecx, dword [ebp - 0x28]
inc edx
call fcn.10002690
push 0x3c
mov esi, 0xe10
pop edi
xor ecx, ecx
xor edx, edx
cmp dword [ebx + 0x24], ecx
jg 0x10010530
mov byte [ebx + 0x20], cl
mov dword [ebx + 0x24], ecx
cmp byte [ebx + 0x21], 0
je 0x100106ef
movzx eax, word [ebx + 0x28]
mov ecx, eax
test ax, ax
jle 0x1001054d
dec eax
mov word [ebx + 0x28], ax
movzx ecx, ax
test cx, cx
js 0x100106e0
movsx ecx, cx
mov eax, ecx
cdq
idiv esi
mov eax, edx
cdq
idiv edi
movzx esi, ax
mov eax, ecx
cdq
idiv edi
xor eax, eax
lea edi, [ebp - 0x28]
stosd dword es:[edi], eax
movzx ecx, dx
xor edx, edx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], dl
push 0xa
pop eax
mov dword [ebp - 4], 2
cmp si, ax
jae 0x100105c5
cmp cx, ax
jae 0x100105c5
push ecx
push esi
mov cl, 0x41
mov dword [ebp - 0x34], 0x25647141
mov dword [ebp - 0x30], 0x2564717b
mov eax, edx
mov byte [ebp - 0x2c], dl
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 7
jae 0x100105c0
mov cl, byte [ebp - 0x34]
jmp 0x100105b1
mov byte [ebp - 0x2c], dl
jmp 0x10010643
push 0xa
pop edi
mov eax, ecx
mov edx, esi
push eax
push edx
xor edx, edx
mov eax, edx
cmp si, di
jae 0x100105fb
mov cl, 0x57
mov dword [ebp - 0x34], 0x33726757
mov dword [ebp - 0x30], 0x33726d
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x100105f6
mov cl, byte [ebp - 0x34]
jmp 0x100105e7
mov byte [ebp - 0x2d], dl
jmp 0x10010643
cmp cx, di
jae 0x1001061f
mov cl, 0x2a
mov dword [ebp - 0x34], 0x104e0f2a
mov dword [ebp - 0x30], 0x4e0f1a
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 6
jae 0x100105f6
mov cl, byte [ebp - 0x34]
jmp 0x10010610
mov cl, 0x1f
mov dword [ebp - 0x34], 0x257b3a1f
mov word [ebp - 0x30], 0x7b3a
mov byte [ebp - 0x2e], dl
xor byte [ebp + eax - 0x33], cl
inc eax
cmp eax, 5
jae 0x10010640
mov cl, byte [ebp - 0x34]
jmp 0x10010631
mov byte [ebp - 0x2e], dl
sub esp, 0x18
lea eax, [ebp - 0x33]
mov ecx, esp
push eax
call fcn.10003ec3
lea eax, [ebp - 0x68]
push eax
call fcn.10003d99
add esp, 0x24
lea ecx, [ebp - 0x28]
push eax
call fcn.10004988
lea ecx, [ebp - 0x68]
call fcn.100026bd
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
movaps xmm0, xmmword [0x10038200]
cmova eax, dword [ebp - 0x28]
xor edx, edx
push eax
movups xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x40], 0x7c2a542f
mov ecx, edx
mov word [ebp - 0x3c], 0x52
mov al, byte [ebp - 0x50]
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 0x14
jb 0x10010696
sub esp, 0x18
mov byte [ebp - 0x3b], dl
lea eax, [ebp - 0x4f]
mov ecx, esp
push eax
call fcn.10003ec3
lea eax, [ebp - 0x68]
push eax
call fcn.10003d99
add esp, 0x20
mov byte [ebp - 4], 3
mov edx, eax
mov ecx, dword [ebx + 0xc]
call fcn.10008e24
lea ecx, [ebp - 0x68]
call fcn.100026bd
lea ecx, [ebp - 0x28]
call fcn.100026bd
xor edx, edx
cmp word [ebx + 0x28], dx
jg 0x100106ef
xor eax, eax
mov byte [ebx + 0x21], dl
mov word [ebx + 0x28], ax
call fcn.1002fbd4
ret