Function at 0x1007ecc0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x1015da08
push eax
mov dword fs:[0], esp
sub esp, 0x1c
push ebx
push esi
mov esi, dword [esp + 0x34]
xor ebx, ebx
cmp esi, ebx
jne 0x1007ecf7
pop esi
xor al, al
pop ebx
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
add esp, 0x28
ret
mov al, byte [esp + 0x34]
push ebx
lea ecx, [esp + 0x18]
mov byte [esp + 0x18], al
call fcn.1000bc70
mov edx, dword [esi]
lea eax, [esp + 0x14]
push eax
mov ecx, esi
mov dword [esp + 0x30], ebx
call dword [edx + 0xc]
test eax, eax
jge 0x1007ed6f
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x2c], 0xffffffff
cmp ecx, ebx
je 0x1007ed5c
mov al, byte [ecx - 1]
test al, al
je 0x1007ed50
cmp al, 0xff
je 0x1007ed50
dec al
pop esi
mov byte [ecx - 1], al
xor al, al
pop ebx
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
add esp, 0x28
ret
add ecx, 0xfffffffe
push ecx
call fcn.101307a0
add esp, 4
pop esi
xor al, al
pop ebx
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
add esp, 0x28
ret
mov al, byte [0x1019743c]
push ebp
test al, 1
push edi
mov word [esp + 0x10], 0x59
mov word [esp + 0x12], 7
mov word [esp + 0x14], 0x1e
mov word [esp + 0x16], 5
mov word [esp + 0x18], 1
jne 0x1007ee05
or al, 1
push 0xc
mov byte [0x1019743c], al
call fcn.1013c2df
add esp, 4
mov dword [0x10197440], eax
mov edi, 0x30
xor esi, esi
mov bp, word [esp + esi + 0x10]
push edi
mov ecx, ebp
and ecx, 0xffff
push ecx
mov ecx, 0x10197440
call fcn.1004a650
mov edx, dword [0x10197440]
xor eax, ebp
xor eax, edi
xor edi, edi
mov word [esi + edx], ax
mov eax, dword [0x10197440]
mov di, word [esi + eax]
add esi, 2
cmp esi, 0xa
jb 0x1007edba
push 0x1007efa0
mov word [eax + 0xa], bx
call fcn.1013c36b
add esp, 4
mov edi, dword [0x10197440]
push edi
call fcn.1013c2c2
mov esi, eax
mov eax, dword [esp + 0x28]
add esp, 4
cmp eax, esi
mov ebp, eax
mov ecx, eax
jb 0x1007ee24
mov ecx, esi
mov eax, dword [esp + 0x20]
push ecx
push edi
push eax
call fcn.100145d0
add esp, 0xc
cmp eax, ebx
jne 0x1007ee4a
cmp ebp, esi
jb 0x1007ee4a
xor eax, eax
cmp ebp, esi
setne al
cmp eax, ebx
je 0x1007ef3a
mov eax, 0x47
mov word [esp + 0x10], 0x51
mov word [esp + 0x12], ax
mov word [esp + 0x16], ax
mov al, byte [0x10197444]
mov word [esp + 0x14], 0x4e
test al, 1
mov word [esp + 0x18], 0x41
mov word [esp + 0x1a], 0x56
jne 0x1007eedd
or al, 1
push 0xe
mov byte [0x10197444], al
call fcn.1013c2df
add esp, 4
mov dword [0x10197448], eax
xor esi, esi
mov di, word [esp + esi + 0x10]
push 0x22
mov eax, edi
mov ecx, 0x10197448
and eax, 0xffff
push eax
call fcn.100a8ee0
mov ecx, dword [0x10197448]
add eax, 0x22
xor eax, edi
mov word [esi + ecx], ax
add esi, 2
cmp esi, 0xc
jb 0x1007ee96
mov edx, dword [0x10197448]
push 0x1007efb0
mov word [edx + 0xc], bx
call fcn.1013c36b
add esp, 4
mov edi, dword [0x10197448]
push edi
call fcn.1013c2c2
mov ebx, dword [esp + 0x28]
add esp, 4
cmp ebx, eax
mov esi, ebx
jb 0x1007eef8
mov esi, eax
mov ebp, dword [esp + 0x20]
mov edx, edi
test esi, esi
mov ecx, ebp
jbe 0x1007ef27
mov di, word [ecx]
cmp di, word [edx]
jne 0x1007ef17
add ecx, 2
add edx, 2
dec esi
jne 0x1007ef04
jmp 0x1007ef27
mov cx, word [ecx]
cmp cx, word [edx]
sbb ecx, ecx
and ecx, 0xfffffffe
inc ecx
test ecx, ecx
jne 0x1007ef36
cmp ebx, eax
jb 0x1007ef36
xor ecx, ecx
cmp ebx, eax
setne cl
test ecx, ecx
je 0x1007ef3e
mov bl, 1
jmp 0x1007ef40
mov ebp, dword [esp + 0x20]
xor bl, bl
test ebp, ebp
mov dword [esp + 0x34], 0xffffffff
je 0x1007ef7d
mov al, byte [ebp - 1]
test al, al
je 0x1007ef71
cmp al, 0xff
je 0x1007ef71
dec al
pop edi
mov byte [ebp - 1], al
pop ebp
mov al, bl
pop esi
pop ebx
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
add esp, 0x28
ret
add ebp, 0xfffffffe
push ebp
call fcn.101307a0
add esp, 4
mov ecx, dword [esp + 0x2c]
pop edi
pop ebp
mov al, bl
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x28
ret