Function at 0x100ffeb0
Capabilities:
Encode data using xor

Disassembly:
push 0xffffffffffffffff
push 0x10165b16
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x14
mov eax, 0x1b7
push ebx
cdq
idiv dword [0x1018ccd0]
mov eax, dword [0x1018cccc]
push ebp
push esi
push edi
mov edi, 0xff74
mov dword [esp + 0x20], 0
mov word [esp + 0x10], 0xff67
mov word [esp + 0x12], di
mov word [esp + 0x14], 0xff7a
mov word [esp + 0x16], 0xff6d
mov word [esp + 0x18], 0xff69
mov word [esp + 0x1a], 0xff7b
mov cl, byte [edx + eax]
mov al, byte [0x10195388]
test al, 1
mov byte [0x1018ccf6], cl
jne 0x100fff4b
mov bl, al
lea edx, [esp + 0x10]
or bl, 1
push edx
mov ecx, 0x1019538c
mov byte [0x10195388], bl
call fcn.10104f10
push 0x10105110
call fcn.1013c36b
add esp, 4
mov esi, dword [0x1019538c]
mov ebp, dword [esp + 0x38]
push esi
call fcn.1013c2c2
add esp, 4
mov ecx, ebp
push eax
mov eax, dword [ebp + 8]
push esi
push eax
push 0
call fcn.1000d2b0
test eax, eax
jne 0x100fffe2
push 0x3c
call fcn.1013c2df
mov esi, eax
add esp, 4
mov dword [esp + 0x38], esi
mov edi, 1
test esi, esi
mov dword [esp + 0x2c], edi
je 0x100fffb6
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
push ecx
push edx
push eax
mov ecx, esi
call fcn.10100580
mov byte [esp + 0x2c], 2
mov dword [esi], 0x1016ab68
mov byte [esp + 0x2c], 1
jmp 0x100fffb8
xor esi, esi
mov eax, dword [esp + 0x34]
mov byte [esp + 0x2c], 0
test esi, esi
setne cl
mov byte [eax], cl
mov dword [eax + 4], esi
mov dword [esp + 0x20], edi
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
add esp, 0x20
ret
call fcn.100ffc20
mov al, byte [0x10195390]
mov word [esp + 0x10], 0xff7c
test al, 1
mov word [esp + 0x12], 0xff83
mov word [esp + 0x14], 0xff70
jne 0x1010002c
mov bl, al
lea edx, [esp + 0x10]
or bl, 1
push edx
mov ecx, 0x10195394
mov byte [0x10195390], bl
call fcn.10104fa0
push 0x10105120
call fcn.1013c36b
add esp, 4
mov esi, dword [0x10195394]
push esi
call fcn.1013c2c2
add esp, 4
mov ecx, ebp
push eax
mov eax, dword [ebp + 8]
push esi
push eax
push 0
call fcn.1000d2b0
test eax, eax
jne 0x10100099
push 0x3c
call fcn.1013c2df
mov esi, eax
add esp, 4
mov dword [esp + 0x38], esi
mov ebx, 3
test esi, esi
mov dword [esp + 0x2c], ebx
je 0x1010035e
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
push ecx
push edx
push eax
mov ecx, esi
call fcn.10100580
mov byte [esp + 0x2c], 4
mov dword [esi], 0x1016ab5c
mov byte [esp + 0x2c], bl
jmp 0x10100360
mov cl, byte [0x1018ccf5]
mov al, byte [0x10195398]
dec cl
mov word [esp + 0x10], 0xff71
test al, 1
mov byte [0x1018ccf5], cl
mov word [esp + 0x12], di
mov word [esp + 0x14], 0xff7f
mov word [esp + 0x16], 0xff7e
jne 0x101000f1
mov bl, al
lea edx, [esp + 0x10]
or bl, 1
push edx
mov ecx, 0x1019539c
mov byte [0x10195398], bl
call fcn.10105020
push 0x10105130
call fcn.1013c36b
add esp, 4
mov esi, dword [0x1019539c]
push esi
call fcn.1013c2c2
add esp, 4
mov ecx, ebp
push eax
mov eax, dword [ebp + 8]
push esi
push eax
push 0
call fcn.1000d2b0
test eax, eax
jne 0x1010015e
push 0x3c
call fcn.1013c2df
mov esi, eax
add esp, 4
mov dword [esp + 0x38], esi
mov ebx, 5
test esi, esi
mov dword [esp + 0x2c], ebx
je 0x1010035e
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
push ecx
push edx
push eax
mov ecx, esi
call fcn.10100580
mov byte [esp + 0x2c], 6
mov dword [esi], 0x1016ab50
mov byte [esp + 0x2c], bl
jmp 0x10100360
mov eax, 0x14
mov word [esp + 0x12], 0x1d
mov word [esp + 0x10], ax
mov word [esp + 0x16], ax
mov al, byte [0x101953a0]
mov word [esp + 0x14], 0x1a
test al, 1
mov word [esp + 0x18], 0x1c
mov word [esp + 0x1a], 0x24
mov word [esp + 0x1c], 0x20
mov word [esp + 0x1e], 0x23
jne 0x101001c7
mov bl, al
lea edx, [esp + 0x10]
or bl, 1
push edx
mov ecx, 0x101953a4
mov byte [0x101953a0], bl
call fcn.101050a0
push 0x10105140
call fcn.1013c36b
add esp, 4
mov esi, dword [0x101953a4]
push esi
call fcn.1013c2c2
add esp, 4
mov ecx, ebp
push eax
mov eax, dword [ebp + 8]
push esi
push eax
push 0
call fcn.1000d2b0
test eax, eax
jne 0x10100234
push 0x3c
call fcn.1013c2df
mov esi, eax
add esp, 4
mov dword [esp + 0x38], esi
mov ebx, 7
test esi, esi
mov dword [esp + 0x2c], ebx
je 0x1010035e
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
push ecx
push edx
push eax
mov ecx, esi
call fcn.10100580
mov byte [esp + 0x2c], 8
mov dword [esi], 0x1016ab44
mov byte [esp + 0x2c], bl
jmp 0x10100360
mov eax, 0xc0
mov word [esp + 0x12], 0xc5
mov word [esp + 0x10], ax
mov word [esp + 0x16], ax
mov word [esp + 0x1a], ax
mov al, byte [0x101953a8]
test al, 1
mov word [esp + 0x14], 0xcc
mov word [esp + 0x18], 0xcf
mov word [esp + 0x1c], 0xc6
mov word [esp + 0x1e], 0xc4
jne 0x101002df
mov bl, al
push 0x12
or bl, 1
mov byte [0x101953a8], bl
call fcn.1013c2df
add esp, 4
mov dword [0x101953ac], eax
xor esi, esi
mov di, word [esp + esi + 0x10]
push 0xa1
mov edx, edi
mov ecx, 0x101953ac
and edx, 0xffff
push edx
call fcn.100a8ee0
mov ecx, dword [0x101953ac]
add eax, 0xa1
xor eax, edi
mov word [esi + ecx], ax
add esi, 2
cmp esi, 0x10
jb 0x10100290
mov edx, dword [0x101953ac]
push 0x10105150
mov word [edx + 0x10], 0
call fcn.1013c36b
add esp, 4
mov esi, dword [0x101953ac]
push esi
call fcn.1013c2c2
mov ebx, dword [ebp + 8]
mov edi, eax
add esp, 4
cmp ebx, edi
mov eax, ebx
jb 0x101002fb
mov eax, edi
mov ebp, dword [ebp + 4]
push eax
push esi
push ebp
call fcn.100145d0
add esp, 0xc
test eax, eax
jne 0x10100375
cmp ebx, edi
jb 0x10100375
cmp ebx, edi
setne al
test eax, eax
jne 0x10100375
push 0x3c
call fcn.1013c2df
mov esi, eax
add esp, 4
mov dword [esp + 0x38], esi
mov ebx, 9
test esi, esi
mov dword [esp + 0x2c], ebx
je 0x1010035e
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
push eax
push ecx
push edx
mov ecx, esi
call fcn.10100580
mov byte [esp + 0x2c], 0xa
mov dword [esi], 0x1016ab38
mov byte [esp + 0x2c], bl
jmp 0x10100360
xor esi, esi
mov eax, dword [esp + 0x34]
mov byte [esp + 0x2c], 0
test esi, esi
setne cl
mov byte [eax], cl
mov dword [eax + 4], esi
jmp 0x10100383
mov eax, dword [esp + 0x34]
mov byte [eax], 0
mov dword [eax + 4], 0
mov ecx, dword [esp + 0x24]
pop edi
pop esi
pop ebp
mov dword [esp + 0x14], 1
pop ebx
mov dword fs:[0], ecx
add esp, 0x20
ret