Function at 0x100463d0
Capabilities:
Encode data using xor

Disassembly:
push 0xffffffffffffffff
push 0x1015a438
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1c
mov al, byte [0x10197d7c]
push ebx
push ebp
xor ebx, ebx
push esi
push edi
test al, 1
mov word [esp + 0x10], 0xa
mov word [esp + 0x12], 0x15
mov word [esp + 0x14], bx
jne 0x1004642d
or al, 1
mov ecx, 0x10197d80
mov byte [0x10197d7c], al
lea eax, [esp + 0x10]
push eax
call fcn.100157c0
push 0x1004a7a0
call fcn.1013c36b
add esp, 4
mov esi, dword [0x10197d80]
push esi
call fcn.1013c2c2
mov edi, dword [esp + 0x40]
add esp, 4
mov ecx, edi
push eax
push ebx
push esi
call fcn.10023f20
mov cl, byte [0x1018c5e4]
mov esi, eax
push ecx
call fcn.1004a790
mov dl, 0xd1
add esp, 4
imul dl
mov byte [0x1018c5e6], al
mov eax, dword [0x1016a210]
cmp esi, eax
je 0x100466e6
push esi
lea eax, [esp + 0x20]
push ebx
push eax
mov ecx, edi
call fcn.10015220
mov eax, 0x86
mov dword [esp + 0x34], ebx
mov word [esp + 0x12], ax
mov word [esp + 0x14], ax
mov al, byte [0x10197d84]
mov word [esp + 0x10], 0x9a
test al, 1
mov word [esp + 0x16], 0x82
jne 0x1004650d
or al, 1
push 0xa
mov byte [0x10197d84], al
call fcn.1013c2df
add esp, 4
mov dword [0x10197d88], eax
xor esi, esi
mov di, word [esp + esi + 0x10]
push 0xf2
mov ecx, edi
and ecx, 0xffff
push ecx
mov ecx, 0x10197d88
call fcn.100a8ee0
mov edx, dword [0x10197d88]
add eax, 0xf2
xor eax, edi
mov word [esi + edx], ax
add esi, 2
cmp esi, 8
jb 0x100464c1
mov eax, dword [0x10197d88]
push 0x1004a7b0
mov word [eax + 8], bx
call fcn.1013c36b
add esp, 4
mov esi, dword [0x10197d88]
push esi
call fcn.1013c2c2
mov ecx, dword [esp + 0x28]
add esp, 4
push eax
push esi
push ecx
push ebx
lea ecx, [esp + 0x2c]
call fcn.1000d2b0
cmp eax, ebx
jne 0x10046572
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x34], 0xffffffff
cmp ecx, ebx
je 0x10046690
mov al, byte [ecx - 1]
cmp al, bl
je 0x10046684
cmp al, 0xff
je 0x10046684
dec al
pop edi
pop esi
mov byte [ecx - 1], al
pop ebp
mov al, 1
pop ebx
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
add esp, 0x28
ret
cmp byte [esp + 0x40], bl
je 0x100466a5
mov eax, 0xffd2
mov word [esp + 0x10], 0xffc6
mov word [esp + 0x12], ax
mov word [esp + 0x14], ax
mov al, byte [0x10197d8c]
mov word [esp + 0x16], 0xffce
test al, 1
mov word [esp + 0x18], 0xffd1
jne 0x1004660e
or al, 1
push 0xc
mov byte [0x10197d8c], al
call fcn.1013c2df
add esp, 4
mov dword [0x10197d90], eax
xor edi, edi
mov si, word [esp + edi + 0x10]
push 0xa2
mov edx, esi
mov ecx, 0x10197d90
and edx, 0xffff
push edx
call fcn.1002ea10
sub esi, eax
mov eax, dword [0x10197d90]
add esi, 0xa2
mov word [edi + eax], si
add edi, 2
cmp edi, 0xa
jb 0x100465c1
mov ecx, dword [0x10197d90]
push 0x1004a7c0
mov word [ecx + 0xa], bx
call fcn.1013c36b
add esp, 4
mov edi, dword [0x10197d90]
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 0x1004662d
mov ecx, esi
mov eax, dword [esp + 0x20]
push ecx
push edi
push eax
call fcn.100145d0
add esp, 0xc
cmp eax, ebx
jne 0x100466a5
cmp ebp, esi
jb 0x100466a5
xor eax, eax
cmp ebp, esi
setne al
cmp eax, ebx
jne 0x100466a5
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x34], 0xffffffff
cmp ecx, ebx
je 0x10046690
mov al, byte [ecx - 1]
cmp al, bl
je 0x10046684
cmp al, 0xff
je 0x10046684
dec al
pop edi
pop esi
mov byte [ecx - 1], al
pop ebp
mov al, 1
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 edi
pop esi
pop ebp
mov al, 1
pop ebx
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
add esp, 0x28
ret
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x34], 0xffffffff
cmp ecx, ebx
je 0x100466e6
mov al, byte [ecx - 1]
cmp al, bl
je 0x100466da
cmp al, 0xff
je 0x100466da
dec al
pop edi
pop esi
mov byte [ecx - 1], al
pop ebp
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
mov ecx, dword [esp + 0x2c]
pop edi
pop esi
pop ebp
xor al, al
pop ebx
mov dword fs:[0], ecx
add esp, 0x28
ret