Function at 0x4b3da0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x500
mov eax, dword [0x93d814]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x30], edi
cmp dword [edi + 0x574], 0
je 0x4b4088
cmp dword [edi + 0xd4], 0
jne 0x4b4036
push 0
call fcn.0040bbe0
movsd xmm1, qword [edi + 0x5f8]
add esp, 4
movsd xmm0, qword [0x6bc898]
mov ebx, eax
comisd xmm0, xmm1
mov esi, edx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x4fc], esi
ja 0x4b3e25
comisd xmm1, xmmword [0x6bc8a0]
ja 0x4b3e25
mov ecx, ebx
mov eax, esi
sub ecx, dword [edi + 0x5d0]
sbb eax, dword [edi + 0x5d4]
add dword [edi + 0x5d8], ecx
jmp 0x4b3e8d
mulsd xmm1, qword [0x6b8f20]
mov ecx, ebx
sub ecx, dword [edi + 0x5d0]
mov eax, esi
mov dword [ebp - 0x24], ecx
sbb eax, dword [edi + 0x5d4]
mov dword [ebp - 0x20], eax
cvttsd2si eax, xmm1
cdq
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x18], edx
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.004972e0
lea eax, [ebp - 0x24]
mov dword [ebp - 0x1c], 0x10000
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x18], 0
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.00496ee0
mov eax, dword [ebp - 0x24]
add esp, 0x18
add dword [edi + 0x5d8], eax
mov eax, dword [ebp - 0x20]
adc dword [edi + 0x5dc], eax
mov ecx, 0x10000
mov eax, dword [edi + 0x5d8]
mov dword [ebp - 0x24], eax
mov eax, dword [edi + 0x5dc]
mov dword [ebp - 0x20], eax
mov eax, dword [edi + 0x588]
mul ecx
push 0
push dword [edi + 0x58c]
mov dword [edi + 0x5d0], ebx
push edx
push eax
mov dword [edi + 0x5d4], esi
call fcn.005c3680
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x18], edx
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.004972e0
lea eax, [ebp - 0x24]
mov dword [ebp - 0x1c], 0x42400000
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x18], 0xf
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.00496ee0
mov ecx, dword [ebp - 0x24]
add esp, 0x18
mov edx, dword [edi + 0x5c0]
cmp edx, ecx
jg 0x4b3f2f
test byte [edi + 0x3c], 2
je 0x4b3f2c
mov eax, ecx
cdq
idiv dword [edi + 0x5c0]
mov ecx, edx
mov edx, dword [edi + 0x5c0]
jmp 0x4b3f2f
lea ecx, [edx - 1]
mov eax, dword [edi + 0x5c8]
cmp eax, ecx
je 0x4b3ffa
mov dword [edi + 0x528], 1
cmp ecx, eax
jge 0x4b3f66
push ecx
push edi
call fcn.004b39a0
add esp, 8
mov dword [edi + 0xa8], ebx
mov dword [edi + 0xac], esi
jmp 0x4b4068
sub ecx, eax
mov dword [ebp - 0x500], ecx
cmp ecx, 2
jne 0x4b3fe2
mov ebx, dword [edi + 0x644]
push 0
push 0x64
push ebx
push dword [edi + 0x640]
call fcn.005c3920
mov edi, eax
mov esi, edx
mov eax, dword [ebp - 0x30]
push 0
push 0xa
push ebx
add edi, dword [eax + 0xa8]
push dword [eax + 0x640]
adc esi, dword [eax + 0xac]
sub edi, dword [ebp - 0x28]
sbb esi, dword [ebp - 0x4fc]
call fcn.005c3920
push edx
push eax
push esi
push edi
call fcn.005c3920
test edx, edx
jg 0x4b3fd0
jl 0x4b3fc9
cmp eax, 2
jae 0x4b3fd0
mov ecx, 1
jmp 0x4b3fd6
mov ecx, dword [ebp - 0x500]
mov edi, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x4fc]
push ecx
push edi
call fcn.004b21c0
add esp, 8
mov dword [edi + 0xa8], ebx
mov dword [edi + 0xac], esi
jmp 0x4b4068
lea eax, [edx - 1]
cmp ecx, eax
jl 0x4b4068
test byte [edi + 0x3c], 2
jne 0x4b4068
mov eax, dword [edi + 0x5e8]
cmp eax, 0xffffffff
je 0x4b4020
push eax
call fcn.004612d0
add esp, 4
cmp eax, 1
je 0x4b4068
mov dword [edi + 0xd0], 0
mov dword [edi + 0xd4], 1
jmp 0x4b4068
cmp dword [0x949344], 0
je 0x4b4050
cmp dword [edi + 0x628], 0
jne 0x4b4068
push 0
push 1
push 0
jmp 0x4b405f
cmp dword [edi + 0x620], 0
jne 0x4b4068
push 0
push 0
push 1
push edi
call fcn.004b2230
add esp, 0x10
mov eax, dword [edi + 0x568]
test eax, eax
je 0x4b4088
push dword [edi + 0x56c]
push edi
call eax
add esp, 8
mov dword [edi + 0xd8], 1
cmp dword [edi + 0x62c], 0
je 0x4b4512
mov eax, dword [edi + 0x63c]
cmp dword [eax + 0x588], 0
je 0x4b446b
mov dword [edi + 0x528], 1
mov dword [eax + 0x588], 0
cmp dword [edi + 0x568], 0
je 0x4b446b
mov ecx, dword [edi + 0x63c]
cmp dword [ecx + 0x57c], 0
je 0x4b4240
cmp dword [ecx + 0x580], 0
je 0x4b40f2
cmp dword [ecx + 0x16c], 0
je 0x4b4240
mov eax, dword [ecx + 0x590]
mov dword [edi + 0x50c], eax
mov eax, dword [ecx + 0x594]
mov dword [edi + 0x510], eax
mov eax, dword [ecx + 0x598]
mov dword [edi + 0x514], eax
mov eax, dword [ecx + 0x57c]
mov dword [edi + 0x518], eax
mov dword [edi + 0x524], 1
mov eax, dword [ecx + 0x178]
test eax, eax
jne 0x4b4147
lea esi, [edi + 0xe4]
push esi
call fcn.00445180
jmp 0x4b4225
cmp eax, 1
jne 0x4b4166
cmp dword [edi + 0xc8], 0
je 0x4b4166
lea esi, [edi + 0xe4]
push esi
call fcn.00444970
jmp 0x4b4225
lea esi, [edi + 0xe4]
cmp eax, 8
jne 0x4b417c
push esi
call fcn.00445b50
jmp 0x4b4225
cmp eax, 9
jne 0x4b418c
push esi
call fcn.00445bb0
jmp 0x4b4225
cmp eax, 0xa
jne 0x4b421f
push 0
push esi
call fcn.00445990
mov eax, 0x6e
lea edx, [edi + 0x10e]
sub eax, edi
add esp, 8
mov dword [ebp - 0x500], eax
mov ebx, 0x100
mov esi, dword [ebp - 0x500]
mov eax, 0xfffffef2
sub eax, edi
mov dword [ebp - 0x4fc], eax
nop dword [eax + eax]
lea ecx, [eax + edx]
mov byte [edx + 1], 0xff
mov eax, dword [edi + 0x63c]
lea edx, [edx + 4]
movzx eax, byte [eax + ecx + 0x17e]
mov byte [edx - 4], al
mov eax, dword [edi + 0x63c]
movzx eax, byte [eax + ecx + 0x17d]
mov byte [edx - 5], al
mov eax, dword [edi + 0x63c]
add eax, esi
movzx eax, byte [eax + edx - 4]
mov byte [edx - 6], al
mov eax, dword [ebp - 0x4fc]
sub ebx, 1
jne 0x4b41d0
lea esi, [edi + 0xe4]
jmp 0x4b4228
push esi
call fcn.00445ce0
add esp, 4
push dword [edi + 0x56c]
mov eax, dword [edi + 0x568]
push edi
mov dword [edi + 0x52c], esi
call eax
add esp, 8
mov eax, dword [edi + 0x63c]
cmp dword [eax + 0x580], 0
je 0x4b446b
cmp dword [edi + 0x530], 0xffffffff
lea ebx, [edi + 0x530]
jne 0x4b42c8
lea eax, [ebp - 0xb8]
push eax
call fcn.00435950
push 0
push 0
lea eax, [ebp - 0xb8]
push 0x20
push eax
call fcn.00435b20
mov eax, dword [edi + 0x63c]
push 0
push 0
push 0
push 0
push 0
mov dword [ebp - 0xac], 1
mov dword [ebp - 0xa8], 8
push dword [eax + 0x5a0]
push dword [eax + 0x59c]
lea eax, [ebp - 0xb8]
push eax
call fcn.00436980
push ebx
push eax
mov dword [ebx], eax
call fcn.0049cc80
add esp, 0x3c
cmp dword [edi + 0x534], 0xffffffff
lea esi, [edi + 0x534]
jne 0x4b433d
lea eax, [ebp - 0xb8]
push eax
call fcn.00435950
push 0
push 0
lea eax, [ebp - 0xb8]
push 0x20
push eax
call fcn.00435b20
mov eax, dword [edi + 0x63c]
push 0
push 0
push 0
push 0
push 0
mov dword [ebp - 0xac], 2
mov dword [ebp - 0xa8], 8
push dword [eax + 0x5ac]
push dword [eax + 0x5a8]
lea eax, [ebp - 0xb8]
push eax
call fcn.00436980
push esi
push eax
mov dword [esi], eax
call fcn.0049cc80
add esp, 0x3c
push 0x440
lea eax, [ebp - 0x4f8]
push 0
push eax
call fcn.00497290
mov ecx, dword [edi + 0x63c]
push 0
push 0
push 0
mov esi, dword [ecx + 0x59c]
mov dword [ebp - 0xd0], esi
mov edx, dword [ecx + 0x5a0]
mov dword [ebp - 0xcc], edx
mov eax, dword [ecx + 0x5a4]
push 0
mov dword [ebp - 0xc8], eax
mov eax, dword [ecx + 0x580]
push 0
mov dword [ebp - 0xc4], eax
lea eax, [ebp - 0x4f8]
push eax
push dword [ebx]
lea eax, [ebp - 0x44]
mov word [ebp - 0x4f8], 0x100
push 0
push 0
push eax
mov byte [ebp - 0x4f4], 1
mov byte [ebp - 0x4f6], 8
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], edx
call fcn.0042fea0
mov ecx, dword [edi + 0x63c]
push 0
push 0
push 0
mov esi, dword [ecx + 0x5a8]
mov dword [ebp - 0xd0], esi
mov edx, dword [ecx + 0x5ac]
mov dword [ebp - 0xcc], edx
mov eax, dword [ecx + 0x5b0]
push 0
mov dword [ebp - 0xc8], eax
mov eax, dword [ecx + 0x584]
push 0
mov dword [ebp - 0xc4], eax
lea eax, [ebp - 0x4f8]
push eax
push dword [edi + 0x534]
lea eax, [ebp - 0x44]
mov word [ebp - 0x4f8], 0x200
push 0
push 0
push eax
mov byte [ebp - 0x4f4], 2
mov byte [ebp - 0x4f6], 8
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], edx
call fcn.0042fea0
mov eax, dword [edi + 0x568]
add esp, 0x5c
push dword [edi + 0x56c]
push edi
call eax
add esp, 8
mov ecx, dword [edi + 0x634]
test ecx, ecx
je 0x4b4512
cmp dword [edi + 0x630], 0
je 0x4b4512
mov eax, dword [ecx]
lea edx, [ebp - 0x2c]
push edx
push ecx
call dword [eax + 0x30]
mov eax, dword [ebp - 0x28]
cmp eax, dword [edi + 0xb4]
jl 0x4b4512
jg 0x4b44a8
mov eax, dword [ebp - 0x2c]
cmp eax, dword [edi + 0xb0]
jb 0x4b4512
test byte [edi + 0x3c], 2
je 0x4b44f2
mov eax, dword [edi + 0x634]
lea edx, [ebp - 0x34]
push 0
push edx
xorps xmm0, xmm0
lea edx, [ebp - 0x2c]
push 1
movlpd qword [ebp - 0x2c], xmm0
movlpd qword [ebp - 0x34], xmm0
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x38]
mov eax, dword [edi + 0x630]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005c33e1
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x630]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x20]
mov dword [edi + 0xd0], 0
mov dword [edi + 0xd4], 1
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005c33e1
mov esp, ebp
pop ebp
ret