Function at 0x493e10
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push esi
push edi
mov edi, dword [ebp + 8]
mov eax, 0x410
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x10]
add eax, 0xfffffffc
mov dword [ebp - 4], 0xffffffff
add eax, dword [ebp + 0xc]
mov ecx, dword [edi]
push 0
push eax
push dword [edi + 4]
mov eax, dword [ecx + 8]
mov dword [ebp - 8], 0x45f30410
call eax
push edi
call fcn.00489f70
add eax, dword [ebp + 0xc]
mov ecx, dword [edi]
push 0
push eax
push dword [edi + 4]
mov eax, dword [ecx + 8]
call eax
push edi
call fcn.00489f30
movzx eax, ax
add esp, 0x20
cmp eax, 0x64
ja 0x494515
test eax, eax
je 0x494515
nop word [eax + eax]
dec eax
push edi
mov dword [ebp - 0x14], eax
call fcn.00489f30
movzx eax, ax
push edi
mov dword [ebp + 0x10], eax
call fcn.00489f70
mov ecx, dword [edi]
push dword [edi + 4]
mov dword [ebp + 8], eax
mov ecx, dword [ecx + 0x18]
call ecx
mov esi, dword [edi]
add esp, 0xc
add eax, 4
mov dword [ebp - 0x10], eax
push 0
push edi
call fcn.00489f70
add eax, dword [ebp + 0xc]
add esp, 4
push eax
push dword [edi + 4]
mov eax, dword [esi + 8]
call eax
mov esi, dword [ebp + 0x10]
add esp, 0xc
mov eax, esi
shr eax, 8
add eax, 8
or eax, 8
cmp eax, 0x38
jne 0x493ef5
mov eax, dword [edi]
push dword [ebp + 8]
push dword [edi + 4]
mov eax, dword [eax + 0x18]
call eax
add esp, 4
push eax
push edi
call fcn.00493e10
add esp, 0xc
cmp esi, 0x810
jne 0x493f19
mov ecx, dword [edi]
lea eax, [edi + 0x6545]
push 1
push 0x40
push eax
push dword [edi + 4]
mov eax, dword [ecx]
call eax
add esp, 0x10
jmp 0x4944f8
cmp esi, 0x80a
jne 0x493f75
mov eax, dword [edi]
lea esi, [edi + 0x6485]
push 1
push 0x40
push esi
push dword [edi + 4]
mov eax, dword [eax]
call eax
add esp, 0x10
lea ecx, [esi + 1]
nop dword [eax + eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x493f40
sub esi, ecx
mov ecx, dword [edi]
push 1
lea eax, [esi - 0x3f]
push eax
push dword [edi + 4]
mov eax, dword [ecx + 8]
call eax
mov ecx, dword [edi]
lea eax, [edi + 0x64c5]
push 1
push 0x40
push eax
push dword [edi + 4]
mov eax, dword [ecx]
call eax
add esp, 0x1c
jmp 0x4944f8
cmp esi, 0x1810
jne 0x493f9f
mov eax, dword [edi]
push 1
push 0xc
push dword [edi + 4]
mov eax, dword [eax + 8]
call eax
push edi
call fcn.00489f70
add esp, 0x10
mov dword [edi + 0x66c8], eax
jmp 0x4944f8
cmp esi, 0x1835
jne 0x493fb8
push edi
call fcn.00489f70
mov dword [edi + 0x65f4], eax
jmp 0x4944f5
cmp esi, 0x2007
jne 0x493fde
mov eax, dword [edi]
push dword [edi + 4]
mov eax, dword [eax + 0x18]
call eax
mov dword [edi + 0x65c4], eax
mov eax, dword [ebp + 8]
mov dword [edi + 0x65d0], eax
jmp 0x4944f5
cmp esi, 0x1818
jne 0x49405f
push edi
call fcn.00489f70
push edi
call fcn.00489f70
push eax
call fcn.0048f6e0
fstp dword [ebp + 8]
movss xmm0, dword [ebp + 8]
xorps xmm0, xmmword [0x6eca60]
cvtss2sd xmm1, xmm0
movsd xmm0, qword [0x6ec850]
call fcn.006a8f50
cvtsd2ss xmm0, xmm0
push edi
movss dword [edi + 0x6594], xmm0
call fcn.00489f70
push eax
call fcn.0048f6e0
fmul dword [0x776828]
add esp, 0x14
movsd xmm0, qword [0x6ec850]
fstp qword [ebp - 0x1c]
movsd xmm1, qword [ebp - 0x1c]
call fcn.006a8f50
cvtsd2ss xmm0, xmm0
movss dword [edi + 0x6598], xmm0
jmp 0x4944f8
cmp esi, 0x102a
jne 0x49418d
push edi
call fcn.00489f70
push edi
call fcn.00489f30
movzx eax, ax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x6f69bc]
subss xmm0, dword [0x6ec910]
cvtps2pd xmm1, xmm0
movsd xmm0, qword [0x6ec850]
call fcn.006a8f50
cvtsd2ss xmm0, xmm0
push edi
mulss xmm0, dword [0x6ecad8]
movss dword [edi + 0x6590], xmm0
call fcn.00489f30
push edi
call fcn.00489f30
cwde
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x6f69b8]
cvtps2pd xmm1, xmm0
movsd xmm0, qword [0x6ec850]
call fcn.006a8f50
cvtsd2ss xmm0, xmm0
push edi
movss dword [edi + 0x6598], xmm0
call fcn.00489f30
cwde
neg eax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x6f69bc]
cvtps2pd xmm1, xmm0
movsd xmm0, qword [0x6ec850]
call fcn.006a8f50
cvtsd2ss xmm0, xmm0
push edi
movss dword [edi + 0x6594], xmm0
call fcn.00489f30
push edi
call fcn.00489f30
movzx eax, ax
xor esi, esi
cmp eax, 0x11
push 1
cmovbe esi, eax
mov eax, dword [edi]
push 0x20
push dword [edi + 4]
mov dword [ebp - 4], esi
mov eax, dword [eax + 8]
call eax
movss xmm0, dword [edi + 0x6594]
add esp, 0x28
cvtps2pd xmm0, xmm0
comisd xmm0, xmmword [0x6f6ac0]
jbe 0x4944f8
push edi
call fcn.00489f30
movzx eax, ax
mov dword [ebp - 4], esi
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x6ec1c0]
movss dword [edi + 0x6594], xmm0
jmp 0x4944f5
cmp esi, 0x102c
jne 0x494226
push edi
call fcn.00489f30
mov ecx, dword [edi]
add esp, 4
mov edx, dword [edi + 4]
mov esi, 0x200
cmp ax, si
mov eax, dword [ecx + 8]
push 1
jbe 0x4941ec
push 0x76
push edx
call eax
add esp, 0xc
xor esi, esi
push edi
call fcn.00489f30
movzx eax, ax
add esp, 4
movd xmm0, eax
mov eax, esi
cvtdq2ps xmm0, xmm0
xor eax, 2
inc esi
movss dword [edi + eax*4 + 0xe774], xmm0
cmp esi, 4
jl 0x4941c0
jmp 0x4944f8
push 0x62
push edx
call eax
add esp, 0xc
xor esi, esi
push edi
call fcn.00489f30
movzx eax, ax
add esp, 4
movd xmm0, eax
mov eax, esi
xor eax, 2
sar eax, 1
cvtdq2ps xmm0, xmm0
xor eax, esi
inc esi
movss dword [edi + eax*4 + 0xe774], xmm0
cmp esi, 4
jl 0x4941f6
jmp 0x4944f8
cmp esi, 0x32
jne 0x494370
cmp dword [ebp + 8], 0x300
jne 0x49429d
mov eax, dword [edi]
push 1
push 0x48
push dword [edi + 4]
mov eax, dword [eax + 8]
call eax
add esp, 0xc
xor esi, esi
nop dword [eax + eax]
push edi
call fcn.00489f30
movss xmm1, dword [0x6ef478]
add esp, 4
movzx eax, ax
movd xmm0, eax
mov eax, esi
cvtdq2ps xmm0, xmm0
shr eax, 1
xor eax, esi
inc esi
divss xmm1, xmm0
movss dword [edi + eax*4 + 0xe774], xmm1
cmp esi, 4
jl 0x494250
cmp dword [ebp - 4], 0
jne 0x4944f8
mov dword [edi + 0xe774], 0xbf800000
jmp 0x4944f8
movss xmm0, dword [edi + 0xe774]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x4944f8
push edi
call fcn.00489f30
add esp, 4
cmp ax, word [ebp - 0xc]
jne 0x4942f7
lea eax, [edi + 0x64c5]
push str.Pro1
push eax
call fcn.006911d0
add esp, 8
mov ecx, str.012346000000000000
test eax, eax
mov eax, str.01345:000000006008
cmove ecx, eax
mov eax, dword [ebp - 4]
movsx eax, byte [ecx + eax]
lea ecx, [eax*8 - 0x122]
jmp 0x494310
xor eax, eax
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
movsx eax, byte [eax + str.023457000000006000]
lea ecx, [eax*8 - 0x132]
mov eax, dword [edi]
push 1
push ecx
push dword [edi + 4]
mov eax, dword [eax + 8]
call eax
add esp, 0xc
xor esi, esi
push edi
call fcn.00489f30
mov ecx, esi
add esp, 4
and ecx, 1
xor ax, word [ebp + ecx*2 - 8]
movzx eax, ax
movd xmm0, eax
mov eax, esi
xor eax, 2
shr eax, 1
cvtdq2ps xmm0, xmm0
xor eax, esi
inc esi
movss dword [edi + eax*4 + 0xe774], xmm0
cmp esi, 4
jl 0x494322
cmp dword [ebp - 4], 0
jne 0x4944f8
mov dword [edi + 0xe774], 0xbf800000
jmp 0x4944f8
cmp esi, 0x10a9
jne 0x4943d4
cmp dword [ebp + 8], 0x42
mov eax, dword [ebp - 4]
jle 0x49438e
movsx eax, byte [eax + str.0134567028]
sub eax, 0x30
mov dword [ebp - 4], eax
mov ecx, dword [edi]
lea eax, [eax*8 + 2]
push 1
push eax
push dword [edi + 4]
mov eax, dword [ecx + 8]
call eax
add esp, 0xc
xor esi, esi
push edi
call fcn.00489f30
movzx eax, ax
add esp, 4
movd xmm0, eax
mov eax, esi
shr eax, 1
cvtdq2ps xmm0, xmm0
xor eax, esi
inc esi
movss dword [edi + eax*4 + 0xe774], xmm0
cmp esi, 4
jl 0x4943a7
jmp 0x4944f8
cmp esi, 0x1030
jne 0x4943f9
mov ecx, dword [ebp - 4]
mov eax, 0x18040
sar eax, cl
test al, 1
je 0x4944f8
push edi
call fcn.00488670
jmp 0x4944f5
cmp esi, 0x1031
jne 0x494429
push edi
call fcn.00489f30
push edi
call fcn.00489f30
push edi
mov word [edi + 0x66b2], ax
call fcn.00489f30
add esp, 0xc
mov word [edi + 0x66b0], ax
jmp 0x4944f8
cmp esi, 0x5029
jne 0x494467
mov ecx, dword [ebp + 8]
mov eax, ecx
sar eax, 0x10
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x659c], xmm0
cmp cx, 2
jne 0x4944f8
mulss xmm0, dword [0x6f69bc]
movss dword [edi + 0x659c], xmm0
jmp 0x4944f8
cmp esi, 0x5813
jne 0x49447f
push dword [ebp + 8]
call fcn.0048f6e0
fstp dword [edi + 0x6588]
jmp 0x4944f5
cmp esi, 0x5814
jne 0x494497
push dword [ebp + 8]
call fcn.0048f6e0
fstp dword [edi + 0x658c]
jmp 0x4944f5
cmp esi, 0x5817
jne 0x4944aa
mov eax, dword [ebp + 8]
mov dword [edi + 0x65a8], eax
jmp 0x4944f8
cmp esi, 0x5834
jne 0x4944bd
mov eax, dword [ebp + 8]
mov dword [edi + 0x65b8], eax
jmp 0x4944f8
cmp esi, 0x580e
jne 0x4944d7
mov eax, dword [ebp + 8]
cdq
mov dword [edi + 0x65a0], eax
mov dword [edi + 0x65a4], edx
jmp 0x4944f8
cmp esi, 0x180e
jne 0x4944f8
push edi
call fcn.00489f70
mov dword [edi + 0x65a0], eax
mov dword [edi + 0x65a4], 0
add esp, 4
mov eax, dword [edi]
push 0
push dword [ebp - 0x10]
push dword [edi + 4]
mov eax, dword [eax + 8]
call eax
mov eax, dword [ebp - 0x14]
add esp, 0xc
test eax, eax
jne 0x493e80
pop edi
pop esi
mov esp, ebp
pop ebp
ret