Function at 0x4ed930
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, ecx
push 0xffffffffffffffff
push 0
mov dword [esi + 0x40], eax
lea ecx, [esi + 0x14]
mov eax, dword [ebp + 0xc]
mov dword [esi], eax
mov eax, dword [ebp + 0x10]
mov dword [esi + 4], eax
call fcn.0048c440
push 0xffffffffffffffff
push 0
lea ecx, [esi + 0x28]
call fcn.004ee2d0
mov dword [ebp - 8], 0
mov ebx, 1
fld dword [ebp - 8]
mov ecx, esi
fst dword [esi + 0x44]
mov dword [ebp - 4], 0
fld dword [ebp - 4]
fst dword [esi + 0x48]
fst dword [esi + 0x50]
fstp dword [esi + 0x58]
mov dword [esi + 0xc], 0
fst dword [esi + 0x4c]
fstp dword [esi + 0x54]
mov dword [ebp + 0xc], ebx
mov dword [ebp + 8], 0x20
call fcn.004edab0
test eax, eax
je 0x4ed889
push edi
nop
movzx edi, word [esi + 0x3c]
test ebx, ebx
je 0x4ed60b
cmp edi, 0x46
jne 0x4ed5f6
push 0
mov ecx, esi
call fcn.004ecbf0
test eax, eax
je case.0x4ed620.68
mov ecx, dword [esi + 8]
mov eax, dword [esi]
movzx eax, word [eax + ecx*2]
cmp eax, 0x30
je 0x4ed5e5
cmp eax, 0x31
jne case.0x4ed620.68
sub eax, 0x30
mov dword [esi + 0x10], eax
lea eax, [ecx + 1]
mov dword [esi + 8], eax
jmp 0x4ed879
cmp edi, 0x4d
je 0x4ed604
cmp edi, 0x6d
jne case.0x4ed620.68
mov dword [ebp + 0xc], 0
mov ebx, edi
lea eax, [ebx - 0x43]
cmp eax, 0x37
ja case.0x4ed620.68
movzx eax, byte [eax + 0x4ed8ac]
jmp dword [eax*4 + 0x4ed898]
mov ecx, esi
call fcn.004ec630
add ebx, 0xffffffb8
cmp ebx, 0x2e
ja case.0x4ed63d.1
movzx eax, byte [ebx + 0x4ed900]
jmp dword [eax*4 + 0x4ed8e4]
push 0
mov ecx, esi
call fcn.004ed930
fadd dword [esi + 0x4c]
fstp dword [esi + 0x4c]
jmp case.0x4ed63d.1
lea eax, [ebp - 0x10]
push 0
push edi
push eax
mov ecx, esi
call fcn.004eda60
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x50], eax
jmp case.0x4ed63d.1
push 0
mov ecx, esi
call fcn.004ed930
fadd dword [esi + 0x50]
jmp 0x4ed69a
push 0
mov ecx, esi
call fcn.004ed930
fstp dword [esi + 0x4c]
jmp case.0x4ed63d.1
lea eax, [ebp - 0x18]
jmp 0x4ed658
push 0
mov ecx, esi
call fcn.004ed930
fstp dword [esi + 0x50]
fld dword [esi + 0x50]
sub esp, 8
mov ecx, esi
fstp dword [esp + 4]
fld dword [esi + 0x4c]
fstp dword [esp]
call fcn.004ecc50
push 1
mov ecx, esi
call fcn.004ecbf0
test eax, eax
jne 0x4ed631
mov dword [ebp + 8], 0x4c
jmp 0x4ed876
push 0
push edi
lea eax, [ebp - 0x20]
mov ecx, esi
push eax
call fcn.004eda60
sub esp, 8
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esi + 0x50], eax
fld dword [esi + 0x50]
fstp dword [esp + 4]
mov dword [esi + 0x4c], ecx
mov ecx, esi
fld dword [esi + 0x4c]
fstp dword [esp]
call fcn.004ebcc0
mov ecx, dword [esi + 0x50]
mov eax, dword [esi + 0x4c]
mov dword [esi + 0x58], ecx
mov ecx, esi
push 1
mov dword [esi + 0xc], 1
mov dword [esi + 0x54], eax
mov dword [ebp + 8], 0x4d
call fcn.004ecbf0
test eax, eax
je 0x4ed876
mov dword [ebp + 8], 0x4c
push 0
push edi
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
call fcn.004eda60
sub esp, 8
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esi + 0x50], eax
fld dword [esi + 0x50]
fstp dword [esp + 4]
mov dword [esi + 0x4c], ecx
mov ecx, esi
fld dword [esi + 0x4c]
fstp dword [esp]
call fcn.004ecc50
push 1
mov ecx, esi
call fcn.004ecbf0
test eax, eax
jne 0x4ed733
jmp 0x4ed876
mov ecx, esi
call fcn.004ec630
lea esp, [esp]
cmp ebx, 0x53
je 0x4ed7a7
cmp ebx, 0x73
je 0x4ed7a7
push 0
push edi
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.004eda60
push 1
fld dword [eax]
fstp dword [ebp - 8]
fld dword [eax + 4]
lea eax, [ebp - 0x38]
jmp 0x4ed7d1
cmp word [ebp + 8], 0x43
jne 0x4ed7c3
lea eax, [ebp - 0x40]
mov ecx, esi
push eax
call fcn.004edaf0
fld dword [eax]
fstp dword [ebp - 8]
fld dword [eax + 4]
jmp 0x4ed7cc
fld dword [esi + 0x4c]
fstp dword [ebp - 8]
fld dword [esi + 0x50]
push 0
lea eax, [ebp - 0x48]
push edi
push eax
mov ecx, esi
fstp dword [ebp - 4]
call fcn.004eda60
push 1
push edi
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esi + 0x44], ecx
mov ecx, esi
mov dword [esi + 0x48], eax
lea eax, [ebp - 0x50]
push eax
call fcn.004eda60
sub esp, 0x18
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esi + 0x50], eax
fld dword [esi + 0x50]
fstp dword [esp + 0x14]
mov dword [esi + 0x4c], ecx
mov ecx, esi
fld dword [esi + 0x4c]
fstp dword [esp + 0x10]
fld dword [esi + 0x48]
fstp dword [esp + 0xc]
fld dword [esi + 0x44]
fstp dword [esp + 8]
fld dword [ebp - 4]
fstp dword [esp + 4]
fld dword [ebp - 8]
fstp dword [esp]
call fcn.004ebd40
push 1
mov ecx, esi
mov dword [ebp + 8], 0x43
call fcn.004ecbf0
test eax, eax
jne 0x4ed780
jmp 0x4ed876
mov ecx, esi
call fcn.004ec630
mov ecx, esi
call fcn.004ebdf0
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x58]
mov dword [esi + 0xc], 0
mov dword [ebp + 8], 0x5a
mov dword [esi + 0x4c], eax
inc esi
dec esp
mov dword [esi + 0x50], ecx
mov ebx, dword [ebp + 0xc]
mov ecx, esi
call fcn.004edab0
test eax, eax
jne 0x4ed5b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ecx, esi
call fcn.004ee770
jne 0x4ed871
dec esi
add byte [edi], ah
salc
dec esi
add cl, dl
salc
dec esi
add byte [esi - 0x28], cl
dec esi
add byte [ecx + 0x4ed8], dl
add al, 4
add al, 4
add dword [esp + eax], eax
add al, 1
add al, byte [esp + eax]
add al, 4
add al, 0
add al, 4
add byte [esp + eax], al
add dword [esp + eax], eax
add al, 3
add al, 4
add al, 4
add al, 4
add al, 4
add byte [esp + eax], al
add al, 4
add dword [esp + eax], eax
add al, 1
add al, byte [esp + eax]
add al, 4
add al, 0
add al, 4
add dword [esp + eax], eax
add al, 3
jle 5167292
dec esi
add byte [esi + edx*8 - 0x296effb2], cl
dec esi
add byte [esi + edx*8 + 0x4e], al
add byte [ebp - 0x2a], dl
dec esi
add byte [eax - 0x2a], dh
dec esi
add byte [ebp + 0x4ed6], bl
push es
push es
push es
add dword [esi], eax
push es
push es
push es
push es
push es
push es
push es
push es
add al, byte [esi]
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
push es
add eax, dword [esi]
push es
push es
add al, 6
push es
push es
push es
push es
push es
push es
push es
push es
add eax, -326412852
push ebp
mov ebp, esp
sub esp, 0xc
push esi
push edi
push dword [ebp + 8]
mov edi, ecx
call fcn.004ecbf0
test eax, eax
je 0x4eda4c
mov ecx, dword [edi + 8]
mov esi, dword [edi]
mov dword [ebp - 8], 0
movzx eax, word [esi + ecx*2]
cmp eax, 0x2b
je 0x4ed96d
mov edx, ecx
cmp eax, 0x2d
jne 0x4ed973
mov dword [ebp - 8], 1
inc ecx
mov edx, ecx
mov dword [edi + 8], ecx
cmp word [esi + ecx*2], 0x30
fld qword [0x5fda60]
mov dword [ebp + 8], 0
jb 0x4ed9c7
lea eax, [esi + 2]
lea eax, [eax + ecx*2]
mov dword [ebp - 4], eax
movzx eax, word [esi + ecx*2]
cmp eax, 0x39
ja 0x4ed9c7
sub eax, 0x30
lea edx, [ecx + 1]
mov dword [ebp - 0xc], eax
mov ecx, edx
fild dword [ebp - 0xc]
mov eax, dword [ebp - 4]
add dword [ebp - 4], 2
fstp dword [ebp - 0xc]
fld dword [ebp - 0xc]
fld dword [ebp + 8]
fmul st(2)
mov dword [edi + 8], edx
cmp word [eax], 0x30
faddp st(1)
fstp dword [ebp + 8]
jae 0x4ed990
cmp word [esi + edx*2], 0x2e
jne 0x4eda28
inc edx
mov dword [ebp - 4], 0x3f800000
mov dword [edi + 8], edx
cmp word [esi + edx*2], 0x30
jb 0x4eda28
fld dword [ebp - 4]
lea ecx, [esi + 2]
lea ecx, [ecx + edx*2]
movzx eax, word [esi + edx*2]
cmp eax, 0x39
ja 0x4eda26
fdiv st(1)
sub eax, 0x30
mov dword [ebp - 0xc], eax
inc edx
fstp dword [ebp - 4]
fild dword [ebp - 0xc]
fstp dword [ebp - 0xc]
fld dword [ebp - 0xc]
fld dword [ebp - 4]
fld st(0)
mov dword [edi + 8], edx
movzx eax, word [ecx]
add ecx, 2
fmulp st(2)
fld dword [ebp + 8]
faddp st(2)
fxch st(1)
fstp dword [ebp + 8]
cmp eax, 0x30
jae 0x4ed9e9
fstp st(0)
cmp dword [ebp - 8], 0
fstp st(0)
movss xmm0, dword [ebp + 8]
pop edi
pop esi
je 0x4eda3e
xorps xmm0, xmmword [0x5ec9b0]
movss dword [ebp + 8], xmm0
fld dword [ebp + 8]
mov esp, ebp
pop ebp
ret 4
mov ecx, edi
call fcn.004ee770
int3