Function at 0x100054d9
Capabilities:
Encrypt data using rc4 prga

Disassembly:
jmp 0x100ce670
mov eax, 0xa4
call fcn.10001f96
mov eax, dword [0x1025e3d4]
xor eax, esp
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0xac]
push ebx
mov ebx, dword [esp + 0xb4]
push edi
mov al, byte [ecx]
mov dword [esp + 0x10], ebx
mov byte [ebx], al
movsx eax, al
test eax, eax
je 0x100ce971
cmp eax, 0x80
jae 0x100ce971
movzx edi, byte [eax + 0x101e4b10]
mov al, byte [ecx + 1]
mov byte [ebx + 1], al
movsx eax, al
shl edi, 2
test eax, eax
je 0x100ce971
cmp eax, 0x80
jae 0x100ce971
mov edx, dword [esp + 0xb0]
push ebp
push esi
movzx esi, byte [eax + 0x101e4b10]
shl esi, 6
xor eax, eax
mov cl, byte [edx]
lea edx, [edx + 1]
test cl, cl
je 0x100ce710
add cl, cl
mov byte [esp + eax + 0xa8], cl
inc eax
cmp eax, 8
jb 0x100ce6f1
jmp 0x100ce71e
mov byte [esp + eax + 0xa8], 0
inc eax
cmp eax, 8
jb 0x100ce710
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0xac]
push eax
call sym.libcrypto_1_1.dll_DES_set_key_unchecked
push esi
push edi
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.10019f80
mov ecx, dword [esp + 0x28]
lea esi, [esp + 0xb4]
mov eax, ecx
mov byte [esp + 0xb4], cl
shr eax, 8
add esp, 0x18
mov byte [esp + 0x9d], al
mov edi, 2
mov eax, ecx
mov byte [esp + 0xa4], 0
shr eax, 0x10
shr ecx, 0x18
mov byte [esp + 0x9e], al
mov byte [esp + 0x9f], cl
mov ecx, dword [esp + 0x14]
mov eax, ecx
shr eax, 8
mov byte [esp + 0xa1], al
mov eax, ecx
shr eax, 0x10
mov byte [esp + 0xa0], cl
shr ecx, 0x18
mov byte [esp + 0xa2], al
mov al, 0x80
mov byte [esp + 0xa3], cl
mov ah, byte [esi]
mov cl, ah
and cl, al
shr al, 1
jne 0x100ce7c4
mov ah, byte [esi + 1]
inc esi
mov al, 0x80
mov bl, cl
mov ebp, esi
neg bl
sbb bl, bl
and ebx, 0xffffff02
test al, ah
je 0x100ce7e2
test cl, cl
setne bl
lea ebx, [ebx*2 + 1]
add bl, bl
shr al, 1
mov dword [esp + 0x10], ebx
mov cl, bl
jne 0x100ce867
mov ah, byte [esi + 1]
or cl, 1
inc esi
movzx ebx, cl
mov ecx, dword [esp + 0x10]
test ah, ah
movzx ecx, cl
mov al, 0x40
cmovns ebx, ecx
mov dl, al
add bl, bl
mov cl, bl
or cl, 1
and dl, ah
movzx ecx, cl
mov dword [esp + 0x10], ecx
mov edx, ecx
movzx ecx, bl
cmove edx, ecx
shr al, 1
add dl, dl
mov bl, ah
mov dword [esp + 0x10], edx
or dl, 1
mov ecx, dword [esp + 0x10]
and bl, al
movzx edx, dl
movzx ecx, cl
cmove edx, ecx
shr al, 1
mov bl, dl
jne 0x100ce8c1
add bl, bl
inc esi
mov al, bl
or al, 1
movzx ecx, al
cmp byte [esi], 0
movzx eax, bl
cmovge ecx, eax
mov al, 0x40
mov byte [esp + 0xa8], cl
mov edx, dword [esp + 0xa8]
jmp 0x100ce8da
or cl, 1
mov dl, al
movzx ecx, cl
and dl, ah
mov dword [esp + 0x10], ecx
mov esi, ebp
mov edx, dword [esp + 0x10]
movzx ecx, bl
cmove edx, ecx
shr al, 1
jne 0x100ce913
mov ah, byte [ebp + 1]
lea esi, [ebp + 1]
add dl, dl
mov al, 0x40
mov cl, dl
or cl, 1
test ah, ah
movzx ebx, cl
movzx ecx, dl
mov dl, al
cmovns ebx, ecx
add bl, bl
mov cl, bl
or cl, 1
and dl, ah
movzx ecx, cl
mov dword [esp + 0x10], ecx
movzx ecx, bl
mov ebx, dword [esp + 0x10]
cmove ebx, ecx
shr al, 1
add bl, bl
mov cl, bl
or cl, 1
and ah, al
movzx edx, cl
movzx ecx, bl
cmove edx, ecx
shr al, 1
jne 0x100ce8da
inc esi
mov al, 0x80
mov ebx, dword [esp + 0x18]
movzx ecx, dl
mov cl, byte [ecx + 0x101e4b90]
mov byte [ebx + edi], cl
inc edi
cmp edi, 0xd
jb 0x100ce7b4
pop esi
pop ebp
pop edi
mov byte [ebx + 0xd], 0
mov eax, ebx
pop ebx
mov ecx, dword [esp + 0xa0]
xor ecx, esp
call fcn.100032f1
add esp, 0xa4
ret
add dl, dl
mov bl, ah
mov dword [esp + 0x10], edx
or dl, 1
mov ecx, dword [esp + 0x10]
and bl, al
movzx edx, dl
movzx ecx, cl
cmove edx, ecx
shr al, 1
jne 0x100ce822
mov ah, byte [esi + 1]
add dl, dl
inc esi
mov cl, dl
or cl, 1
mov al, 0x40
movzx ebx, cl
test ah, ah
movzx ecx, dl
mov dl, al
cmovns ebx, ecx
add bl, bl
mov cl, bl
or cl, 1
and dl, ah
movzx ecx, cl
mov dword [esp + 0xa8], ecx
mov edx, ecx
movzx ecx, bl
cmove edx, ecx
shr al, 1
jmp 0x100ce8da
mov ecx, dword [esp + 0xa8]
xor eax, eax
pop edi
pop ebx
xor ecx, esp
call fcn.100032f1
add esp, 0xa4
ret