Function at 0x43ac10
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 0x43ac2d
bsr eax, ebx
xor eax, 0x1f
jmp 0x43ac32
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, 1
jbe 0x43ad0d
mov esi, 0xa
cmp ebx, 0x2710
mov dword [esp], ebp
jb 0x43ad47
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 0x43ac80
cmp edx, 0x63
jbe 0x43acfe
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 0x43ad50
add dl, 0x30
mov byte [esp + esi + 7], dl
dec esi
jmp 0x43ad60
mov cl, 2
mov edx, dword [edi + 8]
sub cl, al
movzx ebp, cl
mov esi, ebp
jmp 0x43ad31
mov eax, dword [edi]
mov byte [eax + edx], 0x30
inc edx
dec esi
mov dword [edi + 8], edx
je 0x43ac59
cmp dword [edi + 4], edx
jne 0x43ad20
mov ecx, edi
push 1
call fcn.00455160
add esp, 4
mov edx, dword [edi + 8]
jmp 0x43ad20
mov edx, ebx
cmp edx, 0x63
ja 0x43acd5
jmp 0x43acfe
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 0x43ada2
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 0x43ad73