Function at 0x453f20
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10
push ebx
push ebp
push esi
mov esi, dword [esp + 0x20]
xor eax, eax
push edi
mov ecx, dword [esi + 0xcc60]
mov edx, dword [esi + 0xcc5c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
shl ecx, 6
mov dword [esp + 0x1c], eax
mov eax, dword [ecx + edx + 0x1bd0]
mov cl, byte [esi + 0xcc60]
and eax, 0xc000
neg eax
sbb al, al
and al, 0x40
inc al
inc cl
push ecx
mov byte [esp + 0x14], al
call fcn.00450190
mov ebp, dword [esp + 0x2c]
mov byte [esp + 0x15], al
mov eax, 0x7482296b
mov byte [esp + 0x16], 1
imul ebp
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
call fcn.00450190
mov byte [esp + 0x1b], al
mov eax, ebp
cdq
mov ecx, 0x1194
idiv ecx
mov eax, 0x1b4e81b5
mov edi, edx
imul edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
call fcn.00450190
mov byte [esp + 0x20], al
mov eax, edi
cdq
mov ecx, 0x4b
idiv ecx
push edx
call fcn.00450190
mov ebx, dword [esp + 0x3c]
mov byte [esp + 0x25], al
mov eax, 0x7482296b
mov byte [esp + 0x26], 0
imul ebx
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
call fcn.00450190
mov byte [esp + 0x2b], al
mov eax, ebx
cdq
mov ecx, 0x1194
idiv ecx
mov eax, 0x1b4e81b5
mov edi, edx
imul edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
call fcn.00450190
mov byte [esp + 0x30], al
mov eax, edi
cdq
mov ecx, 0x4b
idiv ecx
push edx
call fcn.00450190
mov byte [esp + 0x35], al
add esp, 0x1c
xor eax, eax
xor ecx, ecx
mov edi, eax
xor edx, edx
mov dl, byte [esp + ecx + 0x10]
and edi, 0xffff
shr edi, 8
xor edx, edi
mov dword [esp + 0x24], edx
xor edx, edx
mov dh, al
mov eax, dword [esp + 0x24]
mov ax, word [eax*2 + 0x4ac260]
xor ax, dx
inc ecx
cmp ecx, 0xa
jl 0x45403b
and eax, 0xffff
lea ecx, [esp + 0x1a]
not eax
push eax
push ecx
call fcn.0044ffd0
mov eax, dword [esi + 0xcc60]
mov ecx, dword [esi + 0xcc5c]
shl eax, 6
add esp, 8
lea edi, [eax + ecx]
mov eax, dword [eax + ecx + 0x1bd0]
test eax, 0x100000
je 0x45415c
test ebp, ebp
jne 0x4540ad
or byte [esp + 0x1f], 0x80
mov eax, dword [edi + 0x1bd0]
test ah, 0xc0
je 0x454128
mov eax, dword [esi + 0xcc64]
lea edx, [eax + 0x126]
shl edx, 4
shl eax, 4
mov edx, dword [edx + ecx]
add edx, dword [eax + ecx + 0x125c]
mov eax, dword [esi + 0xcc60]
cmp eax, edx
jl 0x4540f2
mov eax, dword [edi + 0x1bc4]
sub eax, 0x96
cmp ebp, eax
jle 0x4540f2
or byte [esp + 0x1f], 0x80
mov edi, dword [esp + 0x30]
push 0xc
push 0x4ad1ec
push edi
call fcn.0047e960
mov ecx, dword [esi + 0xcc60]
mov edx, dword [esi + 0xcc5c]
shl ecx, 6
push 0
push ebx
mov eax, dword [ecx + edx + 0x1bd0]
push eax
push edi
call fcn.00454580
add esp, 0x1c
jmp 0x45412c
mov edi, dword [esp + 0x30]
mov cl, byte [edi + 0x930]
lea eax, [edi + 0x930]
and cl, 0xf
cmp cl, 1
jne 0x454252
lea edx, [esp + 0x10]
push 0x10
push edx
push eax
call fcn.0047e960
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
mov eax, dword [esp + 0x30]
test byte [eax + 0x934], 0x40
jne 0x454252
mov ebx, 0xfffff6d0
lea edi, [eax + 0x930]
sub ebx, eax
mov dword [esp + 0x28], ebx
lea eax, [ebx + edi]
mov edx, eax
and edx, 0x80000007
jns 0x454190
dec edx
or edx, 0xfffffff8
inc edx
mov cl, 7
sub cl, dl
cdq
and edx, 7
add eax, edx
sar eax, 3
mov al, byte [esp + eax + 0x10]
shr al, cl
and al, 1
shl al, 6
test ebp, ebp
mov byte [edi], al
jne 0x4541b2
or al, 0x80
mov byte [edi], al
mov edx, dword [esi + 0xcc60]
mov ecx, dword [esi + 0xcc5c]
mov eax, edx
shl eax, 6
add eax, ecx
mov dword [esp + 0x24], eax
test byte [eax + 0x1bd1], 0xc0
je 0x454245
mov eax, dword [esi + 0xcc64]
lea ebx, [eax + 0x126]
shl ebx, 4
shl eax, 4
mov ebx, dword [ebx + ecx]
add ebx, dword [eax + ecx + 0x125c]
cmp edx, ebx
jl 0x454209
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x1bc4]
sub edx, 0x96
cmp ebp, edx
jle 0x454209
or byte [edi], 0x80
mov ebx, dword [esp + 0x30]
push 0xc
push 0x4ad1ec
push ebx
call fcn.0047e960
mov ecx, dword [esi + 0xcc60]
mov eax, dword [esp + 0x38]
mov edx, dword [esi + 0xcc5c]
push 0
shl ecx, 6
push eax
mov eax, dword [ecx + edx + 0x1bd0]
push eax
push ebx
call fcn.00454580
mov ebx, dword [esp + 0x44]
add esp, 0x1c
inc edi
lea ecx, [ebx + edi]
cmp ecx, 0x60
jl 0x45417e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret