Function at 0x3d01a58
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
push ebx
push esi
push edi
push 0x3e2d445
call fcn.03cfd124
pop ecx
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
mov esi, dword [eax + 8]
lea eax, [esi + 2]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
cdq
push edx
push eax
call fcn.03cf9ff4
add esp, 8
mov ebx, eax
test ebx, ebx
jne 0x3d01a99
mov eax, 0xc0a
jmp 0x3d01d97
mov edx, dword [ebp - 8]
add edx, 0xf
mov ecx, esi
sub ecx, edx
mov dword [ebp - 0x10], ecx
call fcn.03d01a28
test eax, eax
je 0x3d01b40
mov ecx, dword [0x3e27fa4]
push ecx
call fcn.03cfd124
pop ecx
test eax, eax
jle 0x3d01b2c
mov edx, dword [0x3e27fa4]
mov dl, byte [edx + eax - 1]
cmp dl, 0x2f
je 0x3d01adf
mov ecx, dword [0x3e27fa4]
cmp dl, 0x5c
je 0x3d01adf
inc eax
cmp eax, dword [ebp - 0x10]
jle 0x3d01b17
push 0xb
call fcn.03cf9524
pop ecx
push eax
call fcn.03cf9584
pop ecx
push ebx
call fcn.03cf9cc0
pop ecx
push 0xc65a
push 0
push 0x3e2d44d
push 0
push 1
call fcn.03cfff64
add esp, 0x14
jmp 0x3d01d97
mov eax, dword [0x3e27fa4]
push eax
push 0x3e2d2d0
push ebx
push esi
call fcn.03cfc174
add esp, 0x10
push 0xb
call fcn.03cf9524
pop ecx
push eax
call fcn.03cf9584
pop ecx
jmp 0x3d01cae
cmp dword [0x3e2248c], 2
je 0x3d01b56
call fcn.03cffa68
test eax, eax
je 0x3d01c12
mov eax, esi
add eax, eax
xor edx, edx
push edx
push eax
call fcn.03cf9ff4
add esp, 8
mov edi, eax
test edi, edi
jne 0x3d01b7d
push ebx
call fcn.03cf9cc0
pop ecx
mov eax, 0xc0a
jmp 0x3d01d97
push edi
push esi
call dword [0x3e22614]
test eax, eax
jne 0x3d01bbc
push edi
call fcn.03cf9cc0
pop ecx
push ebx
call fcn.03cf9cc0
pop ecx
push 0xc6bf
push 0
push 0x3e2d45d
call dword [0x3e225cc]
push eax
push 0x190a
call fcn.03cfff64
add esp, 0x14
jmp 0x3d01d97
push edi
call fcn.03cffb3c
pop ecx
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x3d01bf5
mov edx, dword [ebp - 0x14]
push edx
push 0x3e2d2d0
push ebx
push esi
call fcn.03cfc174
add esp, 0x10
mov ecx, dword [ebp - 0x14]
push ecx
call fcn.03cf9cc0
pop ecx
push edi
call fcn.03cf9cc0
pop ecx
jmp 0x3d01cae
push edi
call fcn.03cf9cc0
pop ecx
push ebx
call fcn.03cf9cc0
pop ecx
mov eax, 0xc0a
jmp 0x3d01d97
mov eax, esi
cdq
push edx
push eax
call fcn.03cf9ff4
add esp, 8
mov edi, eax
test edi, edi
jne 0x3d01c36
push ebx
call fcn.03cf9cc0
pop ecx
mov eax, 0xc0a
jmp 0x3d01d97
push edi
push esi
call dword [0x3e22608]
test eax, eax
jne 0x3d01c6e
push ebx
call fcn.03cf9cc0
pop ecx
push 0xc6da
push 0
push 0x3e2d46d
call dword [0x3e225cc]
push eax
push 0x190a
call fcn.03cfff64
add esp, 0x14
jmp 0x3d01d97
call dword [0x3e22494]
push eax
push edi
call fcn.03cffc9c
add esp, 8
mov edi, eax
test edi, edi
je 0x3d01c9d
push edi
push 0x3e2d2d0
push ebx
push esi
call fcn.03cfc174
add esp, 0x10
push edi
call fcn.03cf9cc0
pop ecx
jmp 0x3d01cae
push ebx
call fcn.03cf9cc0
pop ecx
mov eax, 0xc0a
jmp 0x3d01d97
push ebx
mov edx, dword [ebp - 0x10]
inc edx
push edx
call fcn.03d019dc
add esp, 8
test eax, eax
jne 0x3d01ce4
push ebx
call fcn.03cf9cc0
pop ecx
push 0xc6f1
push 0
push 0x3e2d47d
push 0
push 1
call fcn.03cfff64
add esp, 0x14
jmp 0x3d01d97
push ebx
call fcn.03cfd124
pop ecx
mov ecx, dword [ebp - 8]
add ecx, eax
add ecx, 0x11
cmp ecx, dword [ebp - 0xc]
jle 0x3d01d19
push ebx
call fcn.03cf9cc0
pop ecx
push 0xc703
push 0
push 0x3e2d48d
push 0
push 1
call fcn.03cfff64
add esp, 0x14
jmp 0x3d01d97
push 0x3e2d445
lea edx, [eax + ebx]
push edx
mov ecx, dword [ebp - 0xc]
add ecx, 0xfffffff0
sub ecx, eax
push ecx
call fcn.03cfc174
add esp, 0xc
push ebx
call fcn.03cfd124
pop ecx
mov edi, eax
mov eax, edi
add eax, ebx
push eax
push 0xf
call fcn.03cfc6d8
add esp, 8
call dword [0x3e22560]
mov esi, eax
xor eax, eax
mov dword [ebp - 4], eax
lea ecx, [ebx + edi]
mov edx, esi
xor eax, eax
and dl, 0xff
add byte [ecx], dl
xor edx, edx
mov al, byte [ecx]
push ecx
shr esi, 8
mov ecx, 0x3e
div ecx
pop ecx
mov al, byte [edx + 0x3e22910]
mov byte [ecx], al
inc dword [ebp - 4]
inc ecx
inc edi
cmp dword [ebp - 4], 0xf
jb 0x3d01d5b
mov byte [ebx + edi], 0
xor eax, eax
mov byte [ebx + edi + 1], 0
mov edx, dword [ebp + 0xc]
mov dword [edx], ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret