Function at 0x65c9c0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [0x977b10]
sub esp, 8
push ebx
push ebp
mov ebp, dword [esp + 0x14]
inc eax
push esi
xor ebx, ebx
test eax, eax
push edi
jne 0x65ca00
push 0x6a6
push str..loglog0log.c
push str.LOG_CHECKPOINT_SIZE___OS_FILE_LOG_BLOCK_SIZE
call fcn.00651650
mov ecx, dword [0x977b18]
mov eax, dword [ecx]
add esp, 0xc
cmp eax, ebx
je 0x65ca00
mov dword [0x977b18], ebx
cmp dword [0x977b14], ebx
je 0x65ca1a
push 0x6a6
push str..loglog0log.c
call fcn.006516c0
add esp, 8
mov ecx, dword [0x978e94]
mov eax, dword [ecx + 0x100]
mov ecx, dword [ecx + 0x104]
mov esi, dword [ebp + 0x48]
mov byte [esi + 3], al
mov edx, eax
shr edx, 0x18
mov byte [esi], dl
mov edx, eax
shr edx, 0x10
mov byte [esi + 1], dl
mov edx, eax
shr edx, 8
mov byte [esi + 2], dl
mov byte [esi + 7], cl
mov eax, ecx
shr eax, 0x18
mov byte [esi + 4], al
mov edx, ecx
shr edx, 0x10
mov byte [esi + 5], dl
mov eax, ecx
shr eax, 8
mov byte [esi + 6], al
mov ecx, dword [0x978e94]
mov eax, dword [ecx + 0x110]
mov ecx, dword [ecx + 0x114]
mov edx, eax
shr edx, 0x18
mov byte [esi + 8], dl
lea edi, [esi + 8]
mov edx, eax
mov byte [edi + 3], al
shr edx, 0x10
mov byte [edi + 1], dl
mov edx, eax
shr edx, 8
mov byte [edi + 2], dl
mov eax, ecx
shr eax, 0x18
mov byte [edi + 4], al
mov edx, ecx
mov eax, ecx
shr edx, 0x10
shr eax, 8
mov byte [edi + 5], dl
mov byte [edi + 6], al
mov byte [edi + 7], cl
mov eax, dword [0x978e94]
mov ecx, dword [eax + 0x114]
mov edx, dword [eax + 0x110]
push ebp
push ecx
push edx
call fcn.0065b1c0
mov ecx, eax
shr ecx, 0x18
mov byte [esi + 0x10], cl
mov byte [esi + 0x13], al
mov edx, eax
shr edx, 0x10
mov byte [esi + 0x11], dl
mov ecx, eax
shr ecx, 8
mov byte [esi + 0x12], cl
mov edx, dword [0x978e94]
mov eax, dword [edx + 0x78]
mov ecx, eax
shr ecx, 0x18
mov byte [esi + 0x14], cl
mov edx, eax
shr edx, 0x10
mov ecx, eax
add esp, 0xc
shr ecx, 8
mov byte [esi + 0x15], dl
mov byte [esi + 0x16], cl
mov byte [esi + 0x17], al
mov eax, dword [0x93b05c]
mov ecx, dword [0x93b060]
mov edx, eax
shr edx, 0x18
mov byte [esi + 0x18], dl
mov edx, eax
shr edx, 0x10
mov byte [esi + 0x19], dl
mov byte [esi + 0x1b], al
mov edx, eax
shr edx, 8
mov byte [esi + 0x1a], dl
mov eax, ecx
shr eax, 0x18
mov byte [esi + 0x1c], al
mov edx, ecx
mov eax, ecx
shr edx, 0x10
shr eax, 8
mov byte [esi + 0x1e], al
mov byte [esi + 0x1f], cl
mov byte [esi + 0x1d], dl
lea eax, [esi + 0x22]
mov ecx, 0x20
mov byte [eax - 2], bl
mov byte [eax - 1], bl
mov byte [eax], bl
mov byte [eax + 1], bl
mov byte [eax + 2], bl
mov byte [eax + 3], bl
mov byte [eax + 4], bl
mov byte [eax + 5], bl
add eax, 8
dec ecx
jne 0x65cb53
mov ecx, dword [0x978e94]
mov ecx, dword [ecx + 0x94]
cmp ecx, ebx
je 0x65cba9
mov eax, dword [ecx]
mov byte [esi + eax*8 + 0x20], bl
mov byte [esi + eax*8 + 0x21], bl
mov byte [esi + eax*8 + 0x22], bl
mov byte [esi + eax*8 + 0x23], bl
mov byte [esi + eax*8 + 0x24], bl
mov byte [esi + eax*8 + 0x25], bl
mov byte [esi + eax*8 + 0x26], bl
mov byte [esi + eax*8 + 0x27], bl
mov ecx, dword [ecx + 0x50]
cmp ecx, ebx
jne 0x65cb80
lea ecx, [esi + 0x120]
xor eax, eax
cmp esi, ecx
mov edx, esi
jae 0x65cbe2
movzx ebx, byte [edx]
mov dword [esp + 0x10], ebx
mov ebx, eax
xor ebx, dword [esp + 0x10]
xor ebx, 0xff946a4f
shl ebx, 8
add ebx, eax
mov eax, dword [esp + 0x10]
xor ebx, 0x573ed587
add eax, ebx
inc edx
cmp edx, ecx
jb 0x65cbb7
xor ebx, ebx
mov edx, eax
shr edx, 0x18
mov byte [ecx], dl
mov edx, eax
shr edx, 0x10
mov byte [ecx + 1], dl
mov edx, eax
shr edx, 8
mov byte [ecx + 2], dl
mov byte [ecx + 3], al
lea edx, [edi + 0x11c]
xor eax, eax
cmp edi, edx
jae 0x65cc2d
movzx ecx, byte [edi]
mov ebp, ecx
xor ebp, eax
xor ebp, 0xff946a4f
shl ebp, 8
add ebp, eax
xor ebp, 0x573ed587
add ebp, ecx
inc edi
cmp edi, edx
mov eax, ebp
jb 0x65cc08
mov ebp, dword [esp + 0x1c]
mov byte [esi + 0x127], al
mov ecx, eax
shr ecx, 0x18
mov byte [esi + 0x124], cl
mov edx, eax
shr edx, 0x10
mov byte [esi + 0x125], dl
mov ecx, eax
shr ecx, 8
mov byte [esi + 0x126], cl
mov eax, dword [0x978e90]
mov dl, byte [0x978e93]
mov byte [esi + 0x128], dl
mov byte [esi + 0x12b], al
mov ecx, eax
shr ecx, 0x10
mov byte [esi + 0x129], cl
mov edx, eax
shr edx, 8
mov byte [esi + 0x12a], dl
mov byte [esi + 0x12c], 0x55
mov byte [esi + 0x12d], 0xe7
mov byte [esi + 0x12e], 0x71
mov byte [esi + 0x12f], 0x8b
mov eax, dword [0x978e94]
movzx edi, byte [eax + 0x104]
mov ecx, dword [eax + 0x100]
and edi, 1
shl edi, 0xa
mov dword [esp + 0x10], ecx
mov ecx, dword [eax + 0x118]
or edi, 0x200
cmp ecx, ebx
jne 0x65cceb
push 0x6f6
push str..loglog0log.c
add eax, 0x11c
push 0x4b035b5
push eax
call fcn.006a2880
mov eax, dword [0x978e94]
add esp, 0x10
inc dword [eax + 0x118]
mov eax, dword [0x978e94]
mov ecx, dword [eax + 0xdc]
inc ecx
lea edx, [ebp + 1]
push edx
push esi
mov dword [eax + 0xdc], ecx
mov ecx, dword [ebp + 0xc]
push 0x200
mov eax, edi
and eax, 0x3fff
push eax
shr edi, 0xe
push edi
push ecx
push ebx
push 0x10b
call fcn.0067c980
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret