Function at 0x467150
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x34
call fcn.00554690
mov eax, dword [0x5cab48]
xor eax, esp
mov dword [esp + 0x30], eax
cmp dword [esp + 0x3c], 0
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0
jne 0x467190
mov eax, 1
mov ecx, dword [esp + 0x30]
xor ecx, esp
call fcn.0055423a
add esp, 0x34
ret
push ebx
call fcn.0043c510
mov ebx, eax
test ebx, ebx
je 0x4674d0
push 0x467630
push 0x5cccbc
call fcn.0044b340
add esp, 8
neg eax
sbb eax, eax
test dword [0x5cccc4], eax
je 0x4674d0
cmp dword [0x5cccc0], 0
push ebp
push esi
je 0x467205
call fcn.00431d90
push dword [0x5cccb8]
mov esi, eax
call fcn.0044b310
push esi
push dword [0x5cd0f4]
call fcn.0044b260
push dword [0x5cccb8]
mov ebp, eax
mov dword [esp + 0x1c], ebp
call fcn.0044b390
add esp, 0x10
test ebp, ebp
jne 0x46721b
jmp 0x46720d
mov dword [esp + 0xc], 0
push dword [0x5cccb4]
call fcn.0044b3c0
add esp, 4
mov ecx, dword [0x5ccc9c]
mov eax, dword [0x5ccca0]
movq xmm0, qword [0x5ccccc]
mov ebp, dword [0x5ccca4]
push edi
mov edi, ecx
add ecx, dword [esp + 0x4c]
mov dword [esp + 0x24], eax
mov eax, dword [0x5cccdc]
movq qword [esp + 0x2c], xmm0
movq xmm0, qword [0x5cccd4]
mov dword [esp + 0x28], ebp
movq qword [esp + 0x34], xmm0
mov dword [esp + 0x3c], eax
mov dword [0x5ccc9c], ecx
cmp ecx, 0x3ff
jb 0x46729a
mov eax, 0x401005
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 9
imul eax, eax, 0xfffffc01
add ecx, eax
mov dword [0x5ccc9c], ecx
mov dword [0x5ccc98], 0x3ff
jmp 0x4672b0
mov eax, dword [0x5ccc98]
cmp eax, 0x3ff
jae 0x4672b0
cmp ecx, eax
cmova eax, ecx
mov dword [0x5ccc98], eax
mov ecx, dword [esp + 0x4c]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov esi, edx
shr esi, 0x1f
add esi, edx
lea eax, [esi + esi*4]
shl eax, 2
sub ecx, eax
xor eax, eax
test ecx, ecx
setg al
add eax, esi
add ebp, eax
cmp dword [esp + 0x10], 0
mov dword [0x5ccca4], ebp
jne 0x4672f3
push dword [0x5cccb4]
call fcn.0044b390
add esp, 4
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1c], 0
test eax, eax
jle 0x467430
mov dword [esp + 0x14], eax
mov ecx, 0x14
mov esi, eax
cmp eax, 0x14
push 0
cmovg esi, ecx
call fcn.0043cd80
push eax
push ebx
call fcn.0043c180
add esp, 0xc
test eax, eax
je 0x4674cd
push 0x14
lea eax, [esp + 0x30]
push eax
push ebx
call fcn.0043c330
add esp, 0xc
test eax, eax
je 0x4674cd
lea ebp, [edi - 0x3ff]
add ebp, esi
test ebp, ebp
jle 0x46737a
mov eax, esi
sub eax, ebp
push eax
lea eax, [edi + 0x5ccce0]
push eax
push ebx
call fcn.0043c330
add esp, 0xc
test eax, eax
je 0x4674cd
push ebp
push 0x5ccce0
jmp 0x467382
push esi
lea eax, [edi + 0x5ccce0]
push eax
push ebx
call fcn.0043c330
add esp, 0xc
test eax, eax
je 0x4674cd
mov ebp, dword [esp + 0x20]
push esi
push ebp
push ebx
call fcn.0043c330
add esp, 0xc
test eax, eax
je 0x4674cd
push 8
lea eax, [esp + 0x28]
push eax
push ebx
call fcn.0043c330
add esp, 0xc
test eax, eax
je 0x4674cd
push 0
lea eax, [esp + 0x30]
push eax
push ebx
call fcn.0043c0e0
add esp, 0xc
test eax, eax
je 0x4674cd
inc dword [esp + 0x28]
add ebp, esi
xor ecx, ecx
mov dword [esp + 0x20], ebp
test esi, esi
jle 0x46740b
lea ebx, [ebx]
mov al, byte [esp + ecx + 0x2c]
xor byte [edi + 0x5ccce0], al
inc edi
xor eax, eax
cmp edi, 0x3ff
cmovge edi, eax
inc ecx
cmp ecx, esi
jl 0x4673f0
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
add ebp, 0x14
sub eax, 0x14
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], eax
mov ecx, 0x14
cmp ebp, dword [esp + 0x4c]
jl 0x467310
mov edx, dword [esp + 0x10]
test edx, edx
jne 0x46744a
push dword [0x5cccb4]
call fcn.0044b3c0
mov edx, dword [esp + 0x14]
add esp, 4
xor ecx, ecx
lea esp, [esp]
movzx eax, byte [esp + ecx + 0x2c]
xor byte [ecx + 0x5ccccc], al
movzx eax, byte [esp + ecx + 0x2d]
xor byte [ecx + 0x5ccccd], al
movzx eax, byte [esp + ecx + 0x2e]
xor byte [ecx + 0x5cccce], al
movzx eax, byte [esp + ecx + 0x2f]
xor byte [ecx + 0x5ccccf], al
movzx eax, byte [esp + ecx + 0x30]
xor byte [ecx + 0x5cccd0], al
add ecx, 5
cmp ecx, 0x14
jl 0x467450
movsd xmm0, qword [0x57a6b8]
movsd xmm1, qword [0x5ccca8]
comisd xmm0, xmm1
jbe 0x4674b3
addsd xmm1, qword [esp + 0x50]
movsd qword [0x5ccca8], xmm1
test edx, edx
jne 0x4674c5
push dword [0x5cccb4]
call fcn.0044b390
add esp, 4
mov dword [esp + 0x18], 1
pop edi
pop esi
pop ebp
push ebx
call fcn.0043c4f0
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
add esp, 4
pop ebx
xor ecx, esp
call fcn.0055423a
add esp, 0x34
ret