Function at 0x100ad3c0
Capabilities:
Encode data using xor

Disassembly:
push 0xffffffffffffffff
push 0x101610a8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x4c
mov ecx, dword [0x1018cab0]
mov eax, 0x336
cdq
idiv ecx
push ebx
push esi
mov esi, dword [0x1018caac]
push edi
push 0xffffffffffffffdb
push 0x65
mov al, byte [edx + esi]
push eax
mov eax, 0x25c
cdq
idiv ecx
mov al, byte [edx + esi]
mov dl, 0x1b
imul dl
push eax
mov al, byte [0x1018cad4]
push 0x4d
push eax
mov eax, 0x305
cdq
idiv ecx
mov cl, byte [edx + esi]
push ecx
push 0xfffffffffffffffe
push 0xffffffffffffffde
call fcn.100ad700
add esp, 0x14
push eax
call fcn.100ad800
push eax
call fcn.100ad6f0
mov bl, al
mov al, byte [0x1018cad5]
sub bl, al
mov eax, 0x164
cdq
idiv dword [0x1018cab0]
mov eax, dword [0x1018caac]
add esp, 0x18
mov cl, byte [edx + eax]
push ecx
push 0x4a
push 0xffffffffffffffdb
call fcn.100ad720
mov dl, byte [0x1018cad5]
add esp, 8
push eax
push 9
push 0xc
push 0x5c
push edx
push 0xffffffffffffffc5
push 0x3a
push 0xffffffffffffffe0
push 0xffffffffffffffe1
push 0x12
call fcn.100ad700
add esp, 0x14
push eax
call fcn.100ad700
add esp, 0x14
push eax
mov eax, 0x221
cdq
idiv dword [0x1018cab0]
mov eax, dword [0x1018caac]
push 0x54
mov cl, byte [edx + eax]
push ecx
call fcn.100ad800
mov cl, 0xfe
add esp, 0x14
sub cl, al
mov al, byte [0x1018cad5]
inc al
push 0x50
mov byte [0x1018cad5], al
mov al, byte [0x1018cad6]
push ebx
mov dl, al
push 0xffffffffffffffac
push edx
push ecx
push eax
mov eax, 0xee
cdq
idiv dword [0x1018cab0]
mov eax, dword [0x1018caac]
push 0x1b
mov cl, byte [edx + eax]
push ecx
call fcn.100ad800
mov dl, byte [0x1018cad5]
add esp, 0x14
push eax
push edx
call fcn.100ad800
mov eax, 0xef
mov ebx, 0xeb
mov word [esp + 0x38], ax
mov word [esp + 0x48], ax
mov word [esp + 0x4c], ax
mov word [esp + 0x52], ax
mov word [esp + 0x68], ax
mov al, byte [0x10196dc4]
mov word [esp + 0x3e], bx
mov word [esp + 0x5a], bx
add esp, 0x14
mov esi, 0xf9
mov edx, 0xd5
mov edi, 0xe3
mov ecx, 0xfe
xor ebx, ebx
test al, 1
mov word [esp + 0x20], 0xff
mov word [esp + 0x22], si
mov word [esp + 0x26], 0xf8
mov word [esp + 0x28], dx
mov word [esp + 0x2c], 0xee
mov word [esp + 0x2e], di
mov word [esp + 0x30], 0xe4
mov word [esp + 0x32], cx
mov word [esp + 0x36], 0xf8
mov word [esp + 0x3a], si
mov word [esp + 0x3c], cx
mov word [esp + 0x40], 0xee
mov word [esp + 0x42], dx
mov word [esp + 0x44], 0xe6
mov word [esp + 0x48], si
mov word [esp + 0x4a], cx
mov word [esp + 0x4c], dx
mov word [esp + 0x4e], cx
mov word [esp + 0x50], di
mov word [esp + 0x52], 0xe7
jne 0x100ad61b
or al, 1
push 0x38
mov byte [0x10196dc4], al
call fcn.1013c2df
add esp, 4
mov dword [0x10196dc8], eax
xor esi, esi
mov di, word [esp + esi + 0x20]
push 0x8a
mov eax, edi
mov ecx, 0x10196dc8
and eax, 0xffff
push eax
call fcn.100a8ee0
mov ecx, dword [0x10196dc8]
add eax, 0x8a
xor eax, edi
mov word [esi + ecx], ax
add esi, 2
cmp esi, 0x36
jb 0x100ad5cf
mov edx, dword [0x10196dc8]
push 0x100adc30
mov word [edx + 0x36], bx
call fcn.1013c36b
add esp, 4
mov edi, dword [0x10196dc8]
mov al, byte [esp + 0xf]
push edi
mov byte [esp + 0x14], al
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
call fcn.1013c2c2
add esp, 4
mov esi, eax
lea ecx, [esp + 0x10]
push 1
push esi
call fcn.1000c010
test al, al
je 0x100ad66b
mov ecx, dword [esp + 0x14]
push esi
push edi
push ecx
call fcn.100017d0
mov edx, dword [esp + 0x20]
mov dword [esp + 0x24], esi
add esp, 0xc
mov word [edx + esi*2], bx
mov esi, dword [0x10191a54]
push ebx
mov dword [esp + 0x64], ebx
call fcn.1013c3ac
add esp, 4
mov ecx, esi
push eax
lea eax, [esp + 0x14]
push eax
call fcn.10058e60
mov ecx, eax
call fcn.10067f30
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x60], 0xffffffff
cmp ecx, ebx
je 0x100ad6d0
mov al, byte [ecx - 1]
cmp al, bl
je 0x100ad6c4
cmp al, 0xff
je 0x100ad6c4
dec al
pop edi
pop esi
mov byte [ecx - 1], al
pop ebx
mov ecx, dword [esp + 0x4c]
mov dword fs:[0], ecx
add esp, 0x58
ret
add ecx, 0xfffffffe
push ecx
call fcn.101307a0
add esp, 4
mov ecx, dword [esp + 0x58]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x58
ret