Function at 0x455d78
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffebc
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x144], ebx
mov dword [ebp - 0x140], ebx
mov dword [ebp - 0x13c], ebx
mov dword [ebp - 0x14], ebx
mov byte [ebp - 9], cl
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4560ea
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp dword [eax], 0x300
jle 0x455de4
lea edx, [ebp - 0x13c]
mov eax, 0x45348c
call fcn.0040630c
mov ecx, dword [ebp - 0x13c]
mov dl, 1
mov eax, dword [0x45342c]
call fcn.0040bf84
call fcn.00403c74
mov dword [ebp - 0x10], 0x7ff
mov eax, dword [ebp - 0x10]
inc eax
push eax
lea eax, [ebp - 0x14]
mov ecx, 1
mov edx, dword [0x455d58]
call fcn.004055e8
add esp, 4
lea eax, [ebp - 0x1c]
call fcn.004547cc
lea eax, [ebp - 0x20]
call fcn.004547cc
lea eax, [ebp - 0x24]
call fcn.004547cc
lea eax, [ebp - 0x138]
call fcn.00456244
mov dword [ebp - 0x28], 0xffffffff
mov eax, dword [ebp - 8]
and eax, 0x8000001f
jns 0x455e3f
dec eax
or eax, 0xffffffe0
inc eax
test eax, eax
jle 0x455e63
sub eax, 0x1f
jg 0x455e63
dec eax
mov dword [ebp - 0x2c], eax
mov ebx, 0x1f
mov ecx, ebx
mov eax, 1
shl eax, cl
xor dword [ebp - 0x28], eax
dec ebx
inc dword [ebp - 0x2c]
jne 0x455e51
xor ecx, ecx
push ebp
push 0x4560b7
push dword fs:[ecx]
mov dword fs:[ecx], esp
mov ecx, dword [ebp - 8]
add ecx, 7
shr ecx, 3
lea eax, [ebp - 0x138]
mov edx, dword [ebp - 4]
call fcn.004562f0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x28]
and dword [edx + eax*4], ecx
mov eax, dword [ebp - 4]
or dword [eax + 4], 1
mov eax, dword [ebp - 8]
and eax, 0x8000001f
jns 0x455eac
dec eax
or eax, 0xffffffe0
inc eax
mov ecx, eax
add ecx, 0x1f
and ecx, 0x8000001f
jns 0x455ebe
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, 1
shl edx, cl
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx]
mov ebx, dword [ebp - 4]
or dword [ebx + ecx*4], edx
cmp byte [ebp - 9], 0
je 0x455f11
cmp eax, 1
jne 0x455eed
mov eax, dword [ebp - 4]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
or dword [edx + eax*4 - 4], 0x40000000
jmp 0x455f11
mov ecx, eax
add ecx, 0x1e
and ecx, 0x8000001f
jns 0x455eff
dec ecx
or ecx, 0xffffffe0
inc ecx
mov eax, 1
shl eax, cl
mov edx, dword [ebp - 4]
mov edx, dword [edx]
mov ecx, dword [ebp - 4]
or dword [ecx + edx*4], eax
mov eax, dword [ebp - 0x10]
test eax, eax
jle 0x455f3e
mov dword [ebp - 0x2c], eax
mov ebx, 1
mov esi, 0x4d7198
mov eax, dword [ebp - 0x14]
lea ecx, [eax + ebx*4]
mov edx, dword [esi]
mov eax, dword [ebp - 4]
call fcn.004559e0
inc ebx
add esi, 4
dec dword [ebp - 0x2c]
jne 0x455f25
mov dword [ebp - 0x18], 0x2710
mov ebx, 1
jmp 0x455f4d
inc ebx
mov eax, dword [ebp - 0x14]
cmp dword [eax + ebx*4], 0
je 0x455f5b
cmp ebx, dword [ebp - 0x10]
jl 0x455f4c
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
call fcn.00456584
test al, al
je 0x455fa6
cmp byte [ebp + 8], 0
je 0x455f9c
lea edx, [ebp - 0x140]
mov eax, 0x45349c
call fcn.0040630c
mov ecx, dword [ebp - 0x140]
mov dl, 1
mov eax, dword [0x45342c]
call fcn.0040bf84
call fcn.00403c74
jmp 0x455fa6
call fcn.00403d20
jmp 0x4560be
cmp ebx, dword [ebp - 0x10]
jl 0x45603f
mov ebx, 1
xor eax, eax
push ebp
push 0x455feb
push dword fs:[eax]
mov dword fs:[eax], esp
jmp 0x455fc5
inc ebx
cmp ebx, 5
jg 0x455fe1
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov cl, 1
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 4]
call fcn.00455750
test al, al
jne 0x455fc4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x456033
cmp ebx, 5
jle 0x45603f
call fcn.00403d20
jmp 0x4560be
mov ecx, dword [ebp - 4]
mov edx, 2
mov eax, dword [ebp - 4]
call fcn.00453770
mov eax, dword [ebp - 0x10]
test eax, eax
jle 0x456083
mov dword [ebp - 0x2c], eax
mov ebx, 1
mov eax, 0x4d7198
mov edx, dword [ebp - 0x14]
mov edx, dword [edx + ebx*4]
add edx, 2
mov esi, dword [eax]
cmp edx, esi
jb 0x456074
sub edx, esi
mov ecx, dword [ebp - 0x14]
mov dword [ecx + ebx*4], edx
inc ebx
add eax, 4
dec dword [ebp - 0x2c]
jne 0x456063
dec dword [ebp - 0x18]
jne 0x455f45
jmp 0x455e71
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4560f1
lea eax, [ebp - 0x144]
mov edx, 3
call fcn.00404328
lea eax, [ebp - 0x14]
mov edx, dword [0x455d58]
call fcn.004056f4
ret