Function at 0x404d30
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
sub esp, 0x20
push ebx
push ebp
mov eax, 1
push esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x18], eax
mov dword [esp + 0xc], eax
xor eax, eax
mov al, byte [esi]
push edi
xor edi, edi
xor ebp, ebp
mov cl, byte [eax + 0x452560]
xor ebx, ebx
test cl, 1
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x34], ebx
je 0x404d83
inc esi
xor ecx, ecx
mov cl, byte [esi]
test byte [ecx + 0x452560], 1
jne 0x404d75
mov al, byte [esi]
cmp al, 0x2d
jne 0x404d93
mov dword [esp + 0x1c], 0xffffffff
jmp 0x404d97
cmp al, 0x2b
jne 0x404d98
inc esi
cmp byte [esi], 0x30
jne 0x404daa
mov al, byte [esi + 1]
inc esi
inc ebx
cmp al, 0x30
je 0x404d9d
mov dword [esp + 0x34], ebx
mov al, byte [esi]
mov edx, eax
and edx, 0xff
test byte [edx + 0x452560], 4
je 0x404e1c
cmp edi, 0xccccccc
jg 0x404e10
jl 0x404dcf
cmp ebp, 0xcccccccb
jae 0x404e10
movsx eax, al
sub eax, 0x30
push 0
cdq
push 0xa
mov ecx, eax
push edi
push ebp
mov dword [esp + 0x44], ecx
mov dword [esp + 0x30], edx
call fcn.0044a770
mov ecx, dword [esp + 0x34]
add ecx, eax
mov eax, dword [esp + 0x20]
adc eax, edx
inc esi
mov edi, eax
mov ebp, ecx
mov al, byte [esi]
inc ebx
mov ecx, eax
and ecx, 0xff
test byte [ecx + 0x452560], 4
jne 0x404dbd
mov dword [esp + 0x34], ebx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], ebp
xor edx, edx
mov dl, byte [esi]
test byte [edx + 0x452560], 4
je 0x404e45
mov edx, dword [esp + 0x14]
inc esi
xor eax, eax
inc ebx
mov al, byte [esi]
inc edx
mov dword [esp + 0x14], edx
test byte [eax + 0x452560], 4
jne 0x404e29
mov dword [esp + 0x34], ebx
cmp byte [esi], 0x2e
jne 0x404eeb
mov al, byte [esi + 1]
inc esi
mov ecx, eax
and ecx, 0xff
test byte [ecx + 0x452560], 4
je 0x404ecb
cmp edi, 0xccccccc
jg 0x404ebf
jl 0x404e75
cmp ebp, 0xcccccccb
jae 0x404ebf
movsx eax, al
sub eax, 0x30
push 0
cdq
push 0xa
mov ecx, eax
push edi
push ebp
mov dword [esp + 0x44], ecx
mov dword [esp + 0x30], edx
call fcn.0044a770
mov ecx, dword [esp + 0x34]
add ecx, eax
mov eax, dword [esp + 0x20]
adc eax, edx
inc esi
mov edi, eax
mov eax, dword [esp + 0x14]
inc ebx
dec eax
mov dword [esp + 0x14], eax
mov al, byte [esi]
mov ebp, ecx
mov ecx, eax
and ecx, 0xff
test byte [ecx + 0x452560], 4
jne 0x404e63
mov dword [esp + 0x34], ebx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], ebp
xor edx, edx
mov dl, byte [esi]
test byte [edx + 0x452560], 4
je 0x404eeb
inc esi
xor eax, eax
inc ebx
mov al, byte [esi]
test byte [eax + 0x452560], 4
jne 0x404ed8
mov dword [esp + 0x34], ebx
mov al, byte [esi]
cmp al, 0x65
je 0x404ef5
cmp al, 0x45
jne 0x404f45
mov al, byte [esi + 1]
inc esi
cmp al, 0x2d
jne 0x404f07
mov dword [esp + 0x10], 0xffffffff
jmp 0x404f0b
cmp al, 0x2b
jne 0x404f0c
inc esi
mov al, byte [esi]
mov ecx, eax
and ecx, 0xff
test byte [ecx + 0x452560], 4
je 0x404f45
mov ecx, dword [esp + 0x18]
inc esi
movsx eax, al
lea edx, [ecx + ecx*4]
lea ecx, [eax + edx*2 - 0x30]
mov al, byte [esi]
mov edx, eax
mov dword [esp + 0x18], ecx
and edx, 0xff
test byte [edx + 0x452560], 4
jne 0x404f1f
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
imul ebx, dword [esp + 0x10]
add ebx, eax
jns 0x404f62
mov dword [esp + 0x10], 0xffffffff
neg ebx
jmp 0x404f6a
mov dword [esp + 0x10], 1
mov eax, ebp
or eax, edi
jne 0x404f87
mov eax, dword [esp + 0x1c]
test eax, eax
jge 0x404f7c
mov eax, dword [esp + 0x34]
fld qword [0x455958]
jmp 0x4050d0
mov eax, dword [esp + 0x10]
test eax, eax
jle 0x404fc9
cmp edi, 0xccccccc
jg 0x405003
jl 0x404fa1
cmp ebp, 0xcccccccc
jae 0x405003
test ebx, ebx
jle 0x404ffb
push 0
push 0xa
push edi
push ebp
dec ebx
call fcn.0044a770
mov edi, edx
mov ebp, eax
cmp edi, 0xccccccc
jl 0x404fa1
jg 0x404ffb
cmp ebp, 0xcccccccc
jb 0x404fa1
jmp 0x404ffb
push 0
push 0xa
push edi
push ebp
call fcn.0044a7b0
or eax, edx
jne 0x405003
test ebx, ebx
jle 0x404ffb
push 0
push 0xa
push edi
push ebp
dec ebx
call fcn.0044a870
mov edi, edx
push 0
mov ebp, eax
push 0xa
push edi
push ebp
call fcn.0044a7b0
or eax, edx
je 0x404fd8
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], ebp
mov eax, dword [esp + 0x1c]
test eax, eax
jge 0x40501a
neg ebp
adc edi, 0
mov dword [esp + 0x28], ebp
neg edi
mov dword [esp + 0x2c], edi
test ebx, ebx
je 0x4050cc
fld qword [0x455928]
cmp ebx, 0x133
jle 0x40507b
cmp ebx, 0x156
jge 0x40507b
mov eax, ebx
mov ecx, 0x134
cdq
idiv ecx
test edx, edx
je 0x40505b
dec ebx
mov ecx, 0x134
mov eax, ebx
cdq
fmul qword [0x455920]
idiv ecx
test edx, edx
jne 0x405046
mov eax, dword [esp + 0x10]
fild qword [esp + 0x28]
test eax, eax
jge 0x405071
fdivrp st(1)
fmul qword [0x4559e0]
jmp 0x4050d0
fmulp st(1)
fmul qword [0x4559d8]
jmp 0x4050d0
mov eax, ebx
mov ecx, 0x16
cdq
idiv ecx
test edx, edx
je 0x40509e
dec ebx
mov ecx, 0x16
mov eax, ebx
cdq
fmul qword [0x455920]
idiv ecx
test edx, edx
jne 0x405089
test ebx, ebx
jle 0x4050b8
add ebx, 0x15
mov eax, 0xba2e8ba3
mul ebx
shr edx, 4
fmul qword [0x4559d0]
dec edx
jne 0x4050af
mov eax, dword [esp + 0x10]
fild qword [esp + 0x28]
test eax, eax
jge 0x4050c8
fdivrp st(1)
jmp 0x4050d0
fmulp st(1)
jmp 0x4050d0
fild qword [esp + 0x28]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x24]
mov eax, esi
pop edi
fstp qword [edx]
pop esi
pop ebp
sub eax, ecx
pop ebx
add esp, 0x20
ret