Function at 0x57b2b5
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
cmp dword [0xf06680], 0
push ebx
push esi
mov esi, ecx
push edi
mov edi, edx
mov dword [ebp - 4], esi
jne 0x57b2db
call fcn.0057b07d
mov dword [0xf06680], 1
mov ebx, dword [ebp + 8]
mov ecx, ebx
sub ecx, 0x80
je 0x57b30a
sub ecx, 0x40
je 0x57b302
sub ecx, 0x40
je 0x57b2fa
xor eax, eax
inc eax
jmp 0x57b53d
mov dword [esi], 0xe
jmp 0x57b310
mov dword [esi], 0xc
jmp 0x57b310
mov dword [esi], 0xa
sar ebx, 5
lea edx, [esi + 8]
mov dword [esi + 4], edx
test ebx, ebx
jle 0x57b34e
add edi, 2
xor esi, esi
movzx ecx, byte [edi + 1]
movzx eax, byte [edi]
lea edi, [edi + 4]
shl ecx, 8
or ecx, eax
movzx eax, byte [edi - 5]
shl ecx, 8
or ecx, eax
movzx eax, byte [edi - 6]
shl ecx, 8
or ecx, eax
mov dword [edx + esi*4], ecx
inc esi
cmp esi, ebx
jl 0x57b322
mov esi, dword [ebp - 4]
mov eax, dword [esi]
sub eax, 0xa
je 0x57b4c9
dec eax
sub eax, 1
je 0x57b447
dec eax
sub eax, 1
jne 0x57b53b
mov edi, dword [edx]
lea esi, [edx + 0x1f]
mov edx, 0xf06c88
mov dword [ebp + 8], edx
mov ebx, dword [esi - 3]
movzx eax, bl
movzx ecx, byte [eax + 0xf06688]
movzx eax, byte [esi]
lea esi, [esi + 0x20]
shl ecx, 8
movzx eax, byte [eax + 0xf06688]
xor ecx, eax
movzx eax, byte [esi - 0x21]
shl ecx, 8
movzx eax, byte [eax + 0xf06688]
xor ecx, eax
movzx eax, byte [esi - 0x22]
shl ecx, 8
movzx eax, byte [eax + 0xf06688]
xor ecx, eax
mov eax, dword [esi - 0x3b]
xor edi, ecx
mov ecx, dword [esi - 0x37]
xor edi, dword [edx]
mov edx, dword [esi - 0x33]
xor eax, edi
xor ecx, eax
mov dword [esi - 0x1b], eax
xor edx, ecx
mov dword [esi - 0x17], ecx
mov dword [esi - 0x13], edx
movzx eax, byte [esi - 0x10]
mov dword [esi - 0x1f], edi
movzx ecx, byte [eax + 0xf06688]
movzx eax, byte [esi - 0x11]
shl ecx, 8
movzx eax, byte [eax + 0xf06688]
xor ecx, eax
movzx eax, byte [esi - 0x12]
shl ecx, 8
movzx eax, byte [eax + 0xf06688]
xor ecx, eax
movzx eax, dl
mov edx, dword [ebp + 8]
shl ecx, 8
add edx, 4
mov dword [ebp + 8], edx
movzx eax, byte [eax + 0xf06688]
xor ecx, eax
mov eax, dword [esi - 0x2b]
xor ecx, dword [esi - 0x2f]
xor eax, ecx
mov dword [esi - 0xf], ecx
mov ecx, dword [esi - 0x27]
xor ecx, eax
mov dword [esi - 0xb], eax
mov dword [esi - 7], ecx
xor ecx, ebx
mov dword [esi - 3], ecx
cmp edx, 0xf06ca4
jl 0x57b37a
jmp 0x57b53b
mov edi, dword [edx]
lea esi, [edx + 0x17]
mov ebx, 0xf06c88
mov edx, dword [esi - 3]
movzx eax, dl
movzx ecx, byte [eax + 0xf06688]
movzx eax, byte [esi]
lea esi, [esi + 0x18]
shl ecx, 8
movzx eax, byte [eax + 0xf06688]
xor ecx, eax
movzx eax, byte [esi - 0x19]
shl ecx, 8
movzx eax, byte [eax + 0xf06688]
xor ecx, eax
movzx eax, byte [esi - 0x1a]
shl ecx, 8
movzx eax, byte [eax + 0xf06688]
xor ecx, eax
mov eax, dword [esi - 0x2b]
xor edi, ecx
mov ecx, dword [esi - 0x27]
xor edi, dword [ebx]
add ebx, 4
xor eax, edi
mov dword [esi - 0x17], edi
xor ecx, eax
mov dword [esi - 0x13], eax
mov eax, dword [esi - 0x23]
xor eax, ecx
mov dword [esi - 0xf], ecx
mov ecx, dword [esi - 0x1f]
xor ecx, eax
mov dword [esi - 0xb], eax
mov dword [esi - 7], ecx
xor ecx, edx
mov dword [esi - 3], ecx
cmp ebx, 0xf06ca8
jl 0x57b451
jmp 0x57b53b
mov ecx, dword [edx]
lea edi, [edx + 0xf]
mov ebx, 0xf06c88
mov edx, dword [edi - 3]
movzx eax, dl
movzx esi, byte [eax + 0xf06688]
movzx eax, byte [edi]
lea edi, [edi + 0x10]
shl esi, 8
movzx eax, byte [eax + 0xf06688]
xor esi, eax
movzx eax, byte [edi - 0x11]
shl esi, 8
movzx eax, byte [eax + 0xf06688]
xor esi, eax
movzx eax, byte [edi - 0x12]
shl esi, 8
movzx eax, byte [eax + 0xf06688]
xor esi, eax
mov eax, dword [edi - 0x1b]
xor esi, dword [ebx]
add ebx, 4
xor esi, ecx
mov ecx, dword [edi - 0x17]
xor eax, esi
mov dword [edi - 0xf], esi
xor ecx, eax
mov dword [edi - 0xb], eax
mov dword [edi - 7], ecx
xor ecx, edx
mov dword [edi - 3], ecx
mov ecx, esi
cmp ebx, 0xf06cb0
jl 0x57b4d3
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret