Function at 0x43aa60
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x30
mov ebx, dword [esp + 0x44]
mov edi, edx
mov dword [esp + 4], ecx
test ebx, ebx
je 0x43aa7d
bsr eax, ebx
xor eax, 0x1f
jmp 0x43aa82
mov eax, 0x20
mov ecx, 0x1f
xor ebp, ebp
sub ecx, eax
cmovb ecx, ebp
movzx eax, byte [ecx*8 + 0x45eefc]
mov ecx, dword [ecx*8 + 0x45eef8]
add ecx, ebx
adc al, 0
cmp al, 3
jbe 0x43ab5d
mov esi, 0xa
cmp ebx, 0x2710
mov dword [esp], ebp
jb 0x43ab97
mov ebp, 0xa
nop word cs:[eax + eax]
nop dword [eax]
mov eax, ebx
mov ecx, 0xd1b71759
mov esi, ebx
mul ecx
shr edx, 0xd
imul eax, edx, 0x2710
sub esi, eax
imul eax, esi, 0x147b
shr eax, 0x13
imul ecx, eax, 0x64
movzx eax, word [eax + eax + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899MondayTuesdayWednesdayThursdayFridaySaturdaySunday]
sub esi, ecx
cmp ebx, 0x5f5e0ff
mov ebx, edx
movzx ecx, si
lea esi, [ebp - 4]
movzx ecx, word [ecx + ecx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899MondayTuesdayWednesdayThursdayFridaySaturdaySunday]
mov word [esp + ebp + 4], ax
mov word [esp + ebp + 6], cx
mov ebp, esi
ja 0x43aad0
cmp edx, 0x63
jbe 0x43ab4e
movzx eax, dx
shr eax, 2
imul eax, eax, 0x147b
shr eax, 0x11
imul ecx, eax, 0x64
sub edx, ecx
movzx ecx, dx
mov edx, eax
movzx ecx, word [ecx + ecx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899MondayTuesdayWednesdayThursdayFridaySaturdaySunday]
mov word [esp + esi + 6], cx
add esi, 0xfffffffe
cmp edx, 0xa
jae 0x43aba0
add dl, 0x30
mov byte [esp + esi + 7], dl
dec esi
jmp 0x43abb0
mov cl, 4
mov edx, dword [edi + 8]
sub cl, al
movzx ebp, cl
mov esi, ebp
jmp 0x43ab81
mov eax, dword [edi]
mov byte [eax + edx], 0x30
inc edx
dec esi
mov dword [edi + 8], edx
je 0x43aaa9
cmp dword [edi + 4], edx
jne 0x43ab70
mov ecx, edi
push 1
call fcn.00455160
add esp, 4
mov edx, dword [edi + 8]
jmp 0x43ab70
mov edx, ebx
cmp edx, 0x63
ja 0x43ab25
jmp 0x43ab4e
movzx eax, word [edx + edx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899MondayTuesdayWednesdayThursdayFridaySaturdaySunday]
mov word [esp + esi + 6], ax
add esi, 0xfffffffe
mov eax, dword [edi + 4]
mov ebx, dword [edi + 8]
mov ebp, 0xa
sub ebp, esi
sub eax, ebx
cmp eax, ebp
jb 0x43abf2
mov ecx, dword [edi]
lea eax, [esp + esi + 8]
add ecx, ebx
push ebp
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esp]
mov eax, dword [esp + 4]
add ebx, ebp
mov dword [edi + 8], ebx
add ecx, ebp
mov dword [eax + 4], ecx
mov byte [eax], 4
add esp, 0x30
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, edi
mov edx, ebx
push ebp
call fcn.00455160
add esp, 4
mov ebx, dword [edi + 8]
jmp 0x43abc3