Function at 0x1001bb20
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [esp + 4]
mov ecx, dword [0x453e0d24]
sub esp, 0x28
push ebx
push 0
push eax
push ecx
call fcn.10028b60
add esp, 0xc
call fcn.10002bb0
mov ebx, 0xff
cmp eax, ebx
ja 0x1001bf35
test eax, eax
je 0x1001bf1f
push ebp
push esi
push edi
mov dword [esp + 0x28], eax
mov ebp, 0x4949
mov edx, dword [0x453e0d24]
push edx
push 2
lea eax, [esp + 0x18]
push 1
push eax
mov byte [esp + 0x20], bl
mov byte [esp + 0x21], bl
call fcn.10028910
add esp, 0x10
xor eax, eax
cmp word [0x453c0590], bp
jne 0x1001bb95
mov ah, byte [esp + 0x11]
mov al, byte [esp + 0x10]
jmp 0x1001bba1
movzx cx, byte [esp + 0x11]
mov ah, byte [esp + 0x10]
or eax, ecx
mov edx, dword [0x453e0d24]
push edx
push 2
movzx esi, ax
lea eax, [esp + 0x1c]
push 1
push eax
mov byte [esp + 0x24], bl
mov byte [esp + 0x25], bl
call fcn.10028910
add esp, 0x10
xor eax, eax
cmp word [0x453c0590], bp
jne 0x1001bbd9
mov ah, byte [esp + 0x15]
mov al, byte [esp + 0x14]
jmp 0x1001bbe5
movzx cx, byte [esp + 0x15]
mov ah, byte [esp + 0x14]
or eax, ecx
movzx edx, ax
mov eax, dword [0x453e0d24]
push eax
mov dword [esp + 0x38], edx
call fcn.10028cd0
add esp, 4
cmp esi, 0x100
mov dword [esp + 0x30], eax
jne 0x1001bca6
mov ecx, dword [0x453e0d24]
push ecx
push 2
lea edx, [esp + 0x20]
push 1
push edx
mov byte [esp + 0x28], bl
mov byte [esp + 0x29], bl
call fcn.10028910
add esp, 0x10
xor eax, eax
cmp word [0x453c0590], bp
jne 0x1001bc3f
mov ah, byte [esp + 0x19]
mov al, byte [esp + 0x18]
jmp 0x1001bc4b
movzx cx, byte [esp + 0x19]
mov ah, byte [esp + 0x18]
or eax, ecx
mov edx, dword [0x453e0d24]
push edx
push 2
mov word [0x453c0680], ax
lea eax, [esp + 0x24]
push 1
push eax
mov byte [esp + 0x2c], bl
mov byte [esp + 0x2d], bl
call fcn.10028910
add esp, 0x10
xor eax, eax
cmp word [0x453c0590], bp
jne 0x1001bc8f
mov ah, byte [esp + 0x1d]
mov al, byte [esp + 0x1c]
mov word [0x45400ee4], ax
jmp 0x1001bef5
movzx cx, byte [esp + 0x1d]
mov ah, byte [esp + 0x1c]
or eax, ecx
mov word [0x45400ee4], ax
jmp 0x1001bef5
cmp esi, 0x121
jne 0x1001bd58
mov edx, dword [0x453e0d24]
push edx
push 2
lea eax, [esp + 0x28]
push 1
push eax
mov byte [esp + 0x30], bl
mov byte [esp + 0x31], bl
call fcn.10028910
add esp, 0x10
xor eax, eax
cmp word [0x453c0590], bp
jne 0x1001bce7
mov ah, byte [esp + 0x21]
mov al, byte [esp + 0x20]
jmp 0x1001bcf3
movzx cx, byte [esp + 0x21]
mov ah, byte [esp + 0x20]
or eax, ecx
mov edx, dword [0x453e0d24]
push edx
push 2
mov word [0x45400ee6], ax
lea eax, [esp + 0x2c]
push 1
push eax
mov byte [esp + 0x34], bl
mov byte [esp + 0x35], bl
call fcn.10028910
add esp, 0x10
xor eax, eax
cmp word [0x453c0590], bp
jne 0x1001bd2e
mov ah, byte [esp + 0x25]
mov al, byte [esp + 0x24]
jmp 0x1001bd3a
movzx cx, byte [esp + 0x25]
mov ah, byte [esp + 0x24]
or eax, ecx
cmp ax, 0x10bc
mov word [0x453c09c0], ax
jne 0x1001bef5
mov word [0x453c09c0], 0x10bf
jmp 0x1001bef5
cmp esi, 0x130
jne 0x1001be10
mov eax, dword [0x453e0d24]
cmp eax, 0x3ec
jne 0x1001bd9c
cmp dword [0x453c04b8], 0
je 0x1001bd9c
mov edx, dword [0x453c0434]
mov ecx, dword [0x453c0430]
mov esi, edx
sub esi, ecx
cmp esi, 1
jl 0x1001bd9c
movzx eax, byte [ecx]
add ecx, 1
mov dword [0x453c0430], ecx
jmp 0x1001bdb1
push eax
call fcn.10029e60
mov ecx, dword [0x453c0430]
mov edx, dword [0x453c0434]
add esp, 4
sar eax, 7
mov dword [0x453c0ab0], eax
mov eax, dword [0x453e0d24]
cmp eax, 0x3ec
jne 0x1001bdf4
cmp dword [0x453c04b8], 0
je 0x1001bdf4
sub edx, ecx
cmp edx, 1
jl 0x1001bdf4
movzx eax, byte [ecx]
shr eax, 3
not al
add ecx, 1
mov dword [0x453c0430], ecx
and eax, 1
mov word [0x453c08d4], ax
jmp 0x1001bef5
push eax
call fcn.10029e60
shr eax, 3
not al
add esp, 4
and eax, 1
mov word [0x453c08d4], ax
jmp 0x1001bef5
cmp esi, 0x131
jne 0x1001be7f
mov ecx, dword [0x453c0430]
mov dword [0x453c0ad0], 9
mov esi, 0x453c0a63
mov edi, 0x24
mov eax, dword [0x453e0d24]
cmp eax, 0x3ec
jne 0x1001be62
cmp dword [0x453c04b8], 0
je 0x1001be62
mov edx, dword [0x453c0434]
sub edx, ecx
cmp edx, 1
jl 0x1001be62
movzx eax, byte [ecx]
add ecx, 1
mov dword [0x453c0430], ecx
jmp 0x1001be71
push eax
call fcn.10029e60
mov ecx, dword [0x453c0430]
add esp, 4
and al, 3
mov byte [esi], al
sub esi, 1
sub edi, 1
jne 0x1001be32
jmp 0x1001bef5
cmp esi, 0x2ff0
jne 0x1001beb6
xor esi, esi
lea esp, [esp]
call fcn.10002b60
movzx eax, ax
mov dword [esp + 0x2c], eax
mov ecx, esi
xor ecx, 1
fild dword [esp + 0x2c]
add esi, 1
cmp esi, 4
fstp dword [ecx*4 + 0x453c0ac0]
jb 0x1001be90
jmp 0x1001bef5
cmp esi, 0xc000
jne 0x1001bef5
movsx esi, word [0x453c0590]
mov word [0x453c0590], bp
call fcn.10002bb0
cmp eax, 0x2710
jbe 0x1001bedd
call fcn.10002bb0
mov word [0x453c09c0], ax
call fcn.10002bb0
mov word [0x45400ee6], ax
mov word [0x453c0590], si
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov ecx, dword [0x453e0d24]
push 0
add edx, eax
push edx
push ecx
call fcn.10028b60
add esp, 0xc
sub dword [esp + 0x28], 1
jne 0x1001bb60
pop edi
pop esi
pop ebp
mov eax, dword [0x453c0ab0]
mov cx, ax
shl word [0x45400ee6], cl
shr word [0x453c09c0], cl
pop ebx
add esp, 0x28
ret