Function at 0x4581a0
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x88
call fcn.00479f40
mov eax, dword [0x4e9b7c]
push ebx
push ebp
push esi
test eax, eax
push edi
je 0x45826c
push 0xd8
push 0x4a59b8
push 0x12
push 5
call fcn.004548a0
call fcn.00454880
mov ebp, dword [0x4e9b80]
xor ecx, ecx
cmp ebp, eax
push 0xda
sete cl
push 0x4a59b8
mov esi, ecx
push 0x12
push 6
mov dword [esp + 0x34], esi
call fcn.004548a0
add esp, 0x20
test esi, esi
jne 0x458216
push 0xdf
push 0x4a59b8
push 0x11
push 9
call fcn.004548a0
add esp, 0x10
mov eax, dword [0x4e9b64]
mov edx, dword [0x4e9b68]
mov ebx, dword [0x4e9b6c]
mov ecx, 5
mov esi, 0x4e9b4c
lea edi, [esp + 0x24]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0xa0]
mov ebp, eax
add eax, esi
mov dword [esp + 0x1c], edx
cmp eax, 0x3ff
mov dword [esp + 0x20], ebx
mov dword [0x4e9b64], eax
jl 0x458276
cdq
mov ecx, 0x3ff
idiv ecx
mov dword [0x4e9b60], ecx
mov dword [0x4e9b64], edx
jmp 0x45828d
mov dword [esp + 0x14], 0
jmp 0x458200
mov ecx, dword [0x4e9b60]
cmp ecx, 0x3ff
jge 0x45828d
cmp eax, ecx
jle 0x45828d
mov dword [0x4e9b60], eax
mov eax, esi
mov ecx, 0x14
cdq
idiv ecx
xor ecx, ecx
mov eax, 0x66666667
mov edi, dword [esp + 0x14]
test edx, edx
setg cl
imul esi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
add edx, ebx
add edx, ecx
test edi, edi
mov dword [0x4e9b6c], edx
jne 0x4582d7
push 0xff
push 0x4a59b8
push 0x11
push 0xa
call fcn.004548a0
add esp, 0x10
test esi, esi
jle 0x4583f8
mov ecx, esi
add esi, 0x13
mov eax, 0xcccccccd
mov ebx, dword [esp + 0x9c]
mul esi
shr edx, 4
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], edx
jmp 0x458303
mov ecx, dword [esp + 0x10]
cmp ecx, 0x14
mov esi, ecx
jle 0x45830f
mov esi, 0x14
lea ecx, [esp + 0x38]
push ecx
call fcn.0045a490
lea edx, [esp + 0x28]
push 0x14
lea eax, [esp + 0x40]
push edx
push eax
call fcn.0045a080
lea edi, [esi + ebp - 0x3ff]
add esp, 0x10
test edi, edi
jle 0x458363
mov ecx, esi
lea edx, [ebp + 0x4e9738]
sub ecx, edi
lea eax, [esp + 0x38]
push ecx
push edx
push eax
call fcn.0045a080
push edi
lea ecx, [esp + 0x48]
push 0x4e9738
push ecx
call fcn.0045a080
add esp, 0x18
jmp 0x458378
lea edx, [ebp + 0x4e9738]
push esi
lea eax, [esp + 0x3c]
push edx
push eax
call fcn.0045a080
add esp, 0xc
push esi
lea ecx, [esp + 0x3c]
push ebx
push ecx
call fcn.0045a080
lea edx, [esp + 0x28]
push 8
lea eax, [esp + 0x48]
push edx
push eax
call fcn.0045a080
lea ecx, [esp + 0x50]
lea edx, [esp + 0x3c]
push ecx
push edx
call fcn.0045a330
mov edi, dword [esp + 0x40]
add esp, 0x20
inc edi
add ebx, esi
xor eax, eax
mov dword [esp + 0x20], edi
test esi, esi
jle 0x4583da
mov cl, byte [esp + eax + 0x24]
mov dl, byte [ebp + 0x4e9738]
xor dl, cl
mov byte [ebp + 0x4e9738], dl
inc ebp
cmp ebp, 0x3ff
jl 0x4583d5
xor ebp, ebp
inc eax
cmp eax, esi
jl 0x4583b8
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
sub ecx, 0x14
dec eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], eax
jne 0x4582ff
mov edi, dword [esp + 0x14]
lea edx, [esp + 0x38]
push 0x60
push edx
call fcn.00455340
add esp, 8
test edi, edi
jne 0x458421
push 0x129
push 0x4a59b8
push 0x11
push 9
call fcn.004548a0
add esp, 0x10
xor eax, eax
mov cl, byte [esp + eax + 0x24]
mov bl, byte [eax + 0x4e9b4c]
xor bl, cl
mov byte [eax + 0x4e9b4c], bl
inc eax
cmp eax, 0x14
jb 0x458423
fld qword [0x4e9b70]
fcomp qword [0x4a59b0]
fnstsw ax
test ah, 1
je 0x458461
fld qword [0x4e9b70]
fadd qword [esp + 0xa4]
fstp qword [0x4e9b70]
test edi, edi
pop edi
pop esi
pop ebp
pop ebx
jne 0x45847f
push 0x134
push 0x4a59b8
push 0x11
push 0xa
call fcn.004548a0
add esp, 0x10
add esp, 0x88
ret