Function at 0x411630
Capabilities:
Check os version
Encrypt data using rc4 prga
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x4c49b6
mov eax, dword fs:[0]
push eax
sub esp, 0x100
mov eax, dword [0x517b6c]
xor eax, esp
mov dword [esp + 0xf8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x517b6c]
xor eax, esp
push eax
lea eax, [esp + 0x114]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x12c]
mov esi, ecx
mov eax, dword [esi + 0x138]
mov edx, dword [eax + 0x10]
add esi, 0x138
mov ecx, esi
call edx
xor ebx, ebx
mov eax, vtable.CPOS.0
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x11c], ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov byte [esp + 0x11c], 1
fldz
mov eax, dword [esi]
fst qword [esp + 0x54]
fld qword [0x4ed960]
mov edx, dword [eax + 0x2c]
fst qword [esp + 0x5c]
lea ecx, [esp + 0x40]
fst qword [esp + 0x6c]
push ecx
fxch st(1)
mov ecx, esi
fst qword [esp + 0x68]
mov byte [esp + 0xf8], bl
fld qword [0x4ed958]
mov byte [esp + 0xf9], 1
fst qword [esp + 0x78]
mov byte [esp + 0xfa], bl
fst qword [esp + 0x88]
mov byte [esp + 0xfb], bl
fst qword [esp + 0xb8]
mov byte [esp + 0xfc], 1
fstp qword [esp + 0xe8]
mov byte [esp + 0xfd], bl
mov byte [esp + 0xfe], bl
mov byte [esp + 0xff], 1
fst qword [esp + 0x80]
mov byte [esp + 0x100], bl
fst qword [esp + 0x98]
mov byte [esp + 0x101], bl
fst qword [esp + 0xa8]
mov byte [esp + 0x104], bl
fst qword [esp + 0xc8]
mov byte [esp + 0x105], bl
fst qword [esp + 0xd0]
mov byte [esp + 0x106], bl
fstp qword [esp + 0xd8]
mov byte [esp + 0x107], bl
mov byte [esp + 0x108], bl
fst qword [esp + 0x90]
mov byte [esp + 0x109], bl
fst qword [esp + 0xa0]
mov byte [esp + 0x10a], bl
fst qword [esp + 0xb0]
mov byte [esp + 0x10b], 1
fst qword [esp + 0xc0]
mov byte [esp + 0x10c], 1
fst qword [esp + 0xe0]
mov byte [esp + 0x10d], 1
fstp qword [esp + 0xf0]
call edx
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x34], edx
mov edx, dword [esi]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], eax
mov edx, dword [edx + 0x14]
lea eax, [esp + 0x28]
push eax
mov ecx, esi
call edx
mov edi, eax
mov eax, dword [esi]
mov edx, dword [eax + 0x24]
mov ecx, esi
call edx
imul eax, dword [esp + 0x34]
mov dword [esp + 0x20], eax
mov eax, dword [esi]
mov edx, dword [eax + 0x28]
mov ecx, esi
call edx
sub eax, dword [esp + 0x20]
mov dword [esp + 0x3c], eax
mov al, byte [esp + 0x124]
mov cl, al
sub cl, 1
cmp cl, 8
ja 0x41185a
cmp al, 5
jne 0x411869
mov byte [esp + 0x124], 1
mov al, byte [esp + 0x124]
cmp dword [esp + 0x38], ebx
mov dword [esp + 0x24], ebx
jle 0x4119a9
fld qword [0x4ed950]
mov esi, dword [esp + 0x34]
movzx ecx, al
mov dl, byte [esp + ecx + 0x100]
mov dword [esp + 0x20], ecx
mov byte [esp + 0x1a], dl
mov eax, dword [esp + 0x24]
sub eax, dword [esp + 0x38]
cdq
xor eax, edx
sub eax, edx
cmp byte [esp + 0x1a], bl
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fidiv dword [esp + 0x38]
fmul qword [esp + ecx*8 + 0xa4]
fadd st(1)
je 0x4118c6
fld qword [esp + ecx*8 + 0xa4]
fadd st(2)
fsubrp st(1)
cmp esi, ebx
mov dword [esp + 0x1c], ebx
jle 0x41198c
mov al, byte [esp + ecx + 0xf4]
mov byte [esp + 0x1b], al
cmp byte [esp + 0x1b], bl
fild dword [esp + 0x1c]
fidiv dword [esp + 0x34]
fmul qword [esp + ecx*8 + 0x54]
fadd st(2)
je 0x4118f9
fld qword [esp + ecx*8 + 0x54]
fadd st(3)
fsubrp st(1)
fadd st(1)
call fcn.004c3b90
cmp eax, 0xff
jle 0x41190e
mov eax, 0xff
jmp 0x411914
cmp eax, ebx
jge 0x411914
xor eax, eax
mov esi, dword [esp + 0x128]
movzx ecx, byte [esi + 6]
movzx edx, byte [ebp + 6]
shl eax, 8
sub ecx, eax
movzx ecx, byte [ecx + 0x53c398]
add cl, byte [edx + eax + 0x52c498]
add edi, 3
mov byte [edi - 3], cl
movzx edx, byte [esi + 5]
movzx ecx, byte [ebp + 5]
sub edx, eax
mov dl, byte [edx + 0x53c398]
add dl, byte [ecx + eax + 0x52c498]
mov byte [edi - 2], dl
movzx ecx, byte [esi + 4]
movzx edx, byte [ebp + 4]
sub ecx, eax
movzx ecx, byte [ecx + 0x53c398]
add cl, byte [edx + eax + 0x52c498]
mov eax, dword [esp + 0x1c]
mov byte [edi - 1], cl
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x20]
add eax, 1
cmp eax, esi
mov dword [esp + 0x1c], eax
jl 0x4118dd
mov eax, dword [esp + 0x24]
fstp st(0)
add edi, dword [esp + 0x3c]
add eax, 1
cmp eax, dword [esp + 0x38]
mov dword [esp + 0x24], eax
jl 0x411893
fstp st(0)
mov ecx, dword [esp + 0x114]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xf8]
xor ecx, esp
call fcn.004acfa0
add esp, 0x10c
ret 0xc