Function at 0x4535b0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10
push ebx
mov ebx, dword [esp + 0x18]
push ebp
push esi
mov eax, dword [ebx + 0xcc60]
mov ecx, dword [ebx + 0xcc5c]
shl eax, 6
push edi
mov edx, dword [eax + ecx + 0x1bd0]
mov ecx, 0x250
test edx, 0x100000
jne 0x4535e3
mov ecx, 0x264
mov ebp, dword [esp + 0x38]
xor eax, eax
mov edi, ebp
mov esi, dword [esp + 0x28]
rep stosd dword es:[edi], eax
mov edx, dword [ebx + 0xcc64]
mov eax, dword [ebx + 0xcc5c]
shl edx, 4
mov ecx, dword [edx + eax + 0x125c]
shl ecx, 6
mov eax, dword [ecx + eax + 0x1bd0]
test ah, 0x20
jne 0x453629
push 1
push esi
push eax
push ebp
call fcn.00454860
push ebp
call fcn.00454480
add esp, 0x14
xor edx, edx
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], edx
push 0xa
mov dword [esp + 0x18], edx
lea ecx, [eax + eax*4]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x34]
add edx, eax
lea eax, [edx + ecx*2 + 1]
lea ecx, [esp + 0x14]
push eax
push ecx
call fcn.0047e960
mov dl, byte [esp + 0x1c]
add esp, 0xc
and dl, 0xf
cmp dl, 5
je 0x4536c1
mov eax, 0x7482296b
imul esi
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
call fcn.00450190
mov byte [esp + 0x17], al
mov eax, esi
cdq
mov ecx, 0x1194
idiv ecx
mov eax, 0x1b4e81b5
mov esi, edx
imul esi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
call fcn.00450190
mov byte [esp + 0x1c], al
mov eax, esi
cdq
mov ecx, 0x4b
idiv ecx
push edx
call fcn.00450190
add esp, 0xc
mov byte [esp + 0x15], al
xor eax, eax
xor esi, esi
mov ecx, eax
xor edx, edx
mov dl, byte [esp + esi + 0x10]
and ecx, 0xffff
shr ecx, 8
xor edx, ecx
xor ecx, ecx
mov ch, al
mov ax, word [edx*2 + 0x4ac260]
xor ax, cx
inc esi
cmp esi, 0xa
jl 0x4536c5
and eax, 0xffff
lea edx, [esp + 0x1a]
not eax
push eax
push edx
call fcn.0044ffd0
mov eax, dword [ebx + 0xcc60]
mov ecx, dword [ebx + 0xcc5c]
shl eax, 6
add esp, 8
test dword [eax + ecx + 0x1bd0], 0x100000
je 0x45373c
lea edx, [esp + 0x10]
push 0xc
add ebp, 0x930
push edx
push ebp
call fcn.0047e960
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret
mov esi, dword [esp + 0x2c]
mov eax, 0xfffff6d0
sub eax, ebp
lea edi, [ebp + 0x930]
mov dword [esp + 0x38], eax
jmp 0x453757
mov eax, dword [esp + 0x38]
lea ebp, [eax + edi]
mov eax, ebp
and eax, 0x80000007
jns 0x453768
dec eax
or eax, 0xfffffff8
inc eax
mov cl, 7
sub cl, al
mov eax, ebp
cdq
and edx, 7
add eax, edx
mov dl, byte [edi]
sar eax, 3
mov al, byte [esp + eax + 0x10]
shr al, cl
and al, 1
shl al, 6
or al, dl
mov byte [edi], al
mov ebp, dword [esi]
test ebp, ebp
jle case.default.0x4537ae
mov ecx, dword [esp + 0x38]
add ecx, edi
and ecx, 0x80000003
jns 0x4537a5
dec ecx
or ecx, 0xfffffffc
inc ecx
cmp ecx, 3
ja case.default.0x4537ae
jmp dword [ecx*4 + 0x4538e0]
mov edx, dword [ebx + 0xcc5c]
mov cl, byte [edx + ebp + 0x10174]
shr cl, 2
or cl, al
mov byte [edi], cl
jmp case.default.0x4537ae
mov edx, dword [ebx + 0xcc5c]
mov cl, byte [edx + ebp + 0x10174]
and cl, 3
shl cl, 4
or cl, al
mov byte [edi], cl
mov edx, dword [esi]
inc edx
mov dword [esi], edx
mov edx, dword [ebx + 0xcc5c]
mov ax, word [edx + 0x10174]
push eax
call fcn.00450020
mov ecx, dword [esi]
add eax, 2
add esp, 4
cmp ecx, eax
jne 0x45380f
mov dword [esi], 4
mov ecx, dword [esi]
mov edx, dword [ebx + 0xcc5c]
mov al, byte [ecx + edx + 0x10174]
mov cl, byte [edi]
shr al, 4
or cl, al
mov byte [edi], cl
jmp case.default.0x4537ae
mov ecx, dword [ebx + 0xcc5c]
mov dl, byte [ecx + ebp + 0x10174]
and dl, 0xf
shl dl, 2
or dl, al
mov byte [edi], dl
mov ecx, dword [esi]
inc ecx
mov dword [esi], ecx
mov eax, dword [ebx + 0xcc5c]
mov cx, word [eax + 0x10174]
push ecx
call fcn.00450020
mov ecx, dword [esi]
add eax, 2
add esp, 4
cmp ecx, eax
jne 0x45386d
mov dword [esi], 4
mov edx, dword [esi]
mov eax, dword [ebx + 0xcc5c]
mov cl, byte [edx + eax + 0x10174]
mov al, byte [edi]
shr cl, 6
or al, cl
mov byte [edi], al
jmp case.default.0x4537ae
mov edx, dword [ebx + 0xcc5c]
mov cl, byte [edx + ebp + 0x10174]
and cl, 0x3f
or cl, al
mov byte [edi], cl
mov edx, dword [esi]
inc edx
mov dword [esi], edx
mov edx, dword [ebx + 0xcc5c]
mov ax, word [edx + 0x10174]
push eax
call fcn.00450020
mov ecx, dword [esi]
add eax, 2
add esp, 4
cmp ecx, eax
jne case.default.0x4537ae
mov dword [esi], 4
mov ecx, dword [esp + 0x38]
inc edi
add ecx, edi
cmp ecx, 0x60
jl 0x453753
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret