Function at 0x100ed9e0
Capabilities:
Encode data using xor

Disassembly:
push 0xffffffffffffffff
push 0x101646f7
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc
mov dl, byte [0x1018cc2d]
mov eax, dword [esp + 0x20]
push ebx
push ebp
xor ebp, ebp
inc dl
push esi
dec eax
push edi
mov dword [esp + 0x18], ebp
mov byte [0x1018cc2d], dl
je 0x100edc22
dec eax
je 0x100edb58
dec eax
je 0x100eda68
mov esi, dword [esp + 0x2c]
mov al, byte [esp + 0x2c]
push 0x101913e8
mov byte [esi], al
mov dword [esi + 4], ebp
mov dword [esi + 8], ebp
mov dword [esi + 0xc], ebp
call fcn.1013c2c2
add esp, 4
mov edi, eax
mov ecx, esi
push 1
push edi
call fcn.1000c010
test al, al
je 0x100edb3b
mov ecx, dword [esi + 4]
push edi
push 0x101913e8
push ecx
jmp 0x100edb2b
mov eax, 4
mov word [esp + 0x14], 3
mov word [esp + 0x10], ax
mov word [esp + 0x12], ax
mov al, byte [0x10195660]
test al, 1
jne 0x100edaf3
mov bl, al
push 8
or bl, 1
mov byte [0x10195660], bl
call fcn.1013c2df
add esp, 4
mov dword [0x10195664], eax
mov edi, 0x30
xor esi, esi
mov bx, word [esp + esi + 0x10]
push edi
mov edx, ebx
mov ecx, 0x10195664
and edx, 0xffff
push edx
call fcn.1004a650
mov ecx, dword [0x10195664]
xor eax, ebx
xor eax, edi
xor edi, edi
mov word [esi + ecx], ax
mov eax, dword [0x10195664]
mov di, word [esi + eax]
add esi, 2
cmp esi, 6
jb 0x100edaa8
push 0x100edd20
mov word [eax + 6], bp
call fcn.1013c36b
add esp, 4
mov ebx, dword [0x10195664]
mov esi, dword [esp + 0x2c]
mov dl, byte [esp + 0x2c]
push ebx
mov byte [esi], dl
mov dword [esi + 4], ebp
mov dword [esi + 8], ebp
mov dword [esi + 0xc], ebp
call fcn.1013c2c2
add esp, 4
mov edi, eax
mov ecx, esi
push 1
push edi
call fcn.1000c010
test al, al
je 0x100edb3b
mov eax, dword [esi + 4]
push edi
push ebx
push eax
call fcn.100017d0
add esp, 0xc
mov ecx, esi
push edi
call fcn.1000bff0
mov eax, esi
pop edi
pop esi
pop ebp
mov dword [esp + 0xc], 1
pop ebx
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
add esp, 0x18
ret
mov eax, 0x69
mov word [esp + 0x12], 0x6d
mov word [esp + 0x10], ax
mov word [esp + 0x14], ax
mov al, byte [0x10195668]
test al, 1
jne 0x100edbda
mov bl, al
push 8
or bl, 1
mov byte [0x10195668], bl
call fcn.1013c2df
add esp, 4
mov dword [0x1019566c], eax
xor esi, esi
mov di, word [esp + esi + 0x10]
push 0x5d
mov ecx, edi
and ecx, 0xffff
push ecx
mov ecx, 0x1019566c
call fcn.100a8ee0
mov edx, dword [0x1019566c]
add eax, 0x5d
xor eax, edi
mov word [esi + edx], ax
add esi, 2
cmp esi, 6
jb 0x100edb93
mov eax, dword [0x1019566c]
push 0x100edd10
mov word [eax + 6], bp
call fcn.1013c36b
add esp, 4
mov edi, dword [0x1019566c]
mov esi, dword [esp + 0x2c]
mov cl, byte [esp + 0x2c]
push edi
mov byte [esi], cl
mov dword [esi + 4], ebp
mov dword [esi + 8], ebp
mov dword [esi + 0xc], ebp
call fcn.1013c2c2
add esp, 4
mov ecx, esi
push eax
push edi
call fcn.1000bf40
mov eax, esi
pop edi
pop esi
pop ebp
mov dword [esp + 0xc], 1
pop ebx
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
add esp, 0x18
ret
mov al, byte [0x10195670]
mov word [esp + 0x10], 0x82
test al, 1
mov word [esp + 0x12], 0x88
mov word [esp + 0x14], 0x95
jne 0x100edca9
mov bl, al
push 8
or bl, 1
mov byte [0x10195670], bl
call fcn.1013c2df
add esp, 4
mov dword [0x10195674], eax
xor esi, esi
mov di, word [esp + esi + 0x10]
push 0xe6
mov edx, edi
mov ecx, 0x10195674
and edx, 0xffff
push edx
call fcn.100a8ee0
mov ecx, dword [0x10195674]
add eax, 0xe6
xor eax, edi
mov word [esi + ecx], ax
add esi, 2
cmp esi, 6
jb 0x100edc5c
mov edx, dword [0x10195674]
push 0x100edd00
mov word [edx + 6], bp
call fcn.1013c36b
add esp, 4
mov edi, dword [0x10195674]
mov esi, dword [esp + 0x2c]
mov al, byte [esp + 0x2c]
push edi
mov byte [esi], al
mov dword [esi + 4], ebp
mov dword [esi + 8], ebp
mov dword [esi + 0xc], ebp
call fcn.1013c2c2
add esp, 4
mov ecx, esi
push eax
push edi
call fcn.1000bf40
mov dword [esp + 0x18], 1
mov ecx, dword [esp + 0x1c]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x18
ret