Function at 0x463530
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push esi
mov esi, ecx
mov al, byte [esi + 0x7c]
cmp al, 8
jbe 0x463544
cmp al, 0xc
jne 0x463548
cmp al, 0xd
jne 0x46354c
mov byte [esi + 0x7c], 0
cmp byte [esi + 0x66], 0
mov dword [esi + 0x374], 2
jne 0x46386d
cmp byte [esi + 0x6d], 0
jne 0x46386d
mov eax, 0xa52
cmp word [esi + 0xc], ax
jne 0x4635b6
mov eax, dword [esi + 0x368]
test eax, eax
je 0x4635b6
movd xmm0, dword [eax + 0x28]
sub esp, 0x10
cvtdq2ps xmm0, xmm0
movss dword [esp + 0xc], xmm0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
push 0x6f
call fcn.004d1b80
lea ecx, [eax + 0x58]
call fcn.004db0b0
movzx eax, word [esi + 0xc]
mov ecx, 0x48e
movss xmm0, dword [0x528764]
cmp ax, cx
je 0x4635d8
mov ecx, 0xc28
cmp ax, cx
je 0x4635db
jmp 0x463620
xorps xmm0, xmm0
sub esp, 0xc
movss dword [esp + 8], xmm0
mov dword [esp + 4], 0x43ca8000
mov dword [esp], 0x43070000
call fcn.00453040
movss xmm0, dword [esi + 0x3c]
fstp dword [esp + 4]
movss dword [esp], xmm0
movss xmm0, dword [esi + 0x38]
push ecx
movss dword [esp], xmm0
push 0x33
call fcn.004d1b80
lea ecx, [eax + 0x58]
call fcn.004db0b0
mov eax, 0x6ca
cmp word [esi + 0xc], ax
jne 0x463668
cmp byte [esi + 0x69], 0
jne 0x463668
movss xmm0, dword [esi + 0x3c]
sub esp, 0x10
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 0x38]
movss dword [esp], xmm0
push 0x4f
call fcn.004d1b80
lea ecx, [eax + 0x58]
call fcn.004db0b0
mov eax, 0x720
cmp word [esi + 0xc], ax
jne 0x463704
cmp byte [esi + 0x69], 0
jne 0x463704
push edi
mov dword [ebp - 4], 2
nop dword [eax]
movss xmm0, dword [esi + 0x3c]
lea ecx, [esi + 0x48]
sub esp, 0xc
mov dword [esp + 8], 0x40400000
mov dword [esp + 4], 0
movss dword [esp], xmm0
call fcn.0040a420
push ecx
fstp dword [esp]
lea ecx, [esi + 0x48]
call fcn.0040a420
fstp dword [ebp - 8]
movss xmm0, dword [ebp - 8]
xorps xmm0, xmmword [0x5289e0]
push ecx
movss dword [esp], xmm0
call fcn.00453040
fadd dword [esi + 0x38]
add esp, 4
fstp dword [esp]
push 0x5b
call fcn.004d1b80
lea ecx, [eax + 0x58]
call fcn.004db0b0
sub dword [ebp - 4], 1
jne 0x463690
pop edi
mov dword [esi + 0x104], 0x3f000000
mov eax, 0x794
cmp word [esi + 6], ax
jne 0x46378d
movss xmm0, dword [esi + 0x3c]
sub esp, 0x10
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x42b40000
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 0x38]
subss xmm0, dword [0x52ae44]
movss dword [esp], xmm0
push 0x65
call fcn.004d1b80
lea ecx, [eax + 0x58]
call fcn.004db0b0
movss xmm0, dword [esi + 0x3c]
sub esp, 0x10
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x42b40000
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 0x38]
addss xmm0, dword [0x52ae44]
movss dword [esp], xmm0
push 0x65
call fcn.004d1b80
lea ecx, [eax + 0x58]
call fcn.004db0b0
mov eax, 0xa0e
cmp word [esi + 6], ax
jne 0x4637cf
movss xmm0, dword [esi + 0x3c]
sub esp, 0x10
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x42b40000
movss dword [esp + 4], xmm0
movss xmm0, dword [esi + 0x38]
movss dword [esp], xmm0
push 0x13
call fcn.004d1b80
lea ecx, [eax + 0x58]
call fcn.004db0b0
movzx eax, word [esi + 0xc]
mov edx, 0x68a
mov ecx, eax
cmp ax, dx
je 0x463811
mov edx, 0x6e2
cmp ax, dx
je 0x463811
mov edx, 0x790
cmp ax, dx
je 0x463811
mov edx, 0x7b2
cmp ax, dx
je 0x463811
mov edx, 0x8a8
cmp ax, dx
je 0x463811
mov edx, 0xc20
cmp ax, dx
jne 0x463824
test dword [esi + 0x34], 0x10000
jne 0x463824
mov dword [esi + 0x104], 0x3f000000
mov eax, 0x6f4
cmp cx, ax
jne 0x46384f
cmp dword [esi + 0x368], 0
je 0x46386d
test dword [esi + 0x34], 0x10000
jne 0x46386d
mov dword [esi + 0x104], 0x3f000000
pop esi
mov esp, ebp
pop ebp
ret
mov eax, 0x60e
cmp cx, ax
je 0x463863
mov eax, 0x792
cmp cx, ax
jne 0x46386d
mov dword [esi + 0x104], 0x3f800000
pop esi
mov esp, ebp
pop ebp
ret