Function at 0x4395e0
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 0x4395fd
bsr eax, ebx
xor eax, 0x1f
jmp 0x439602
mov eax, 0x20
mov ecx, 0x1f
xor ebp, ebp
sub ecx, eax
cmovb ecx, ebp
movzx eax, byte [ecx*8 + 0x45bfcc]
mov ecx, dword [ecx*8 + 0x45bfc8]
add ecx, ebx
adc al, 0
cmp al, 1
jbe 0x4396dd
mov esi, 0xa
cmp ebx, 0x2710
mov dword [esp], ebp
jb 0x439717
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 0x439650
cmp edx, 0x63
jbe 0x4396ce
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 0x439720
add dl, 0x30
mov byte [esp + esi + 7], dl
dec esi
jmp 0x439730
mov cl, 2
mov edx, dword [edi + 8]
sub cl, al
movzx ebp, cl
mov esi, ebp
jmp 0x439702
mov eax, dword [edi + 4]
mov byte [eax + edx], 0x30
inc edx
dec esi
mov dword [edi + 8], edx
je 0x439629
cmp dword [edi], edx
jne 0x4396f0
mov ecx, edi
push 1
call fcn.00452090
add esp, 4
mov edx, dword [edi + 8]
jmp 0x4396f0
mov edx, ebx
cmp edx, 0x63
ja 0x4396a5
jmp 0x4396ce
movzx eax, word [edx + edx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899MondayTuesdayWednesdayThursdayFridaySaturdaySunday]
mov word [esp + esi + 6], ax
add esi, 0xfffffffe
mov eax, dword [edi]
mov ebx, dword [edi + 8]
mov ebp, 0xa
sub ebp, esi
sub eax, ebx
cmp eax, ebp
jb 0x439772
mov ecx, dword [edi + 4]
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.00452090
add esp, 4
mov ebx, dword [edi + 8]
jmp 0x439742