Function at 0x437800
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebx
push edi
push esi
sub esp, 0xc
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
cmp edi, 0
setl bl
cmp edi, 1
sete bh
jmp 0x437824
or bl, bh
mov esi, edi
sub esi, 0x25
setge bh
or bl, bh
test bl, 1
jne 0x437837
jmp 0x43783c
jmp 0x4379ba
mov esi, eax
add esi, edx
add esi, 0xffffffff
mov byte [eax + edx - 1], 0
cmp ecx, 0
sete al
test al, 1
jne 0x437854
jmp 0x437862
mov eax, esi
add eax, 0xffffffff
mov byte [esi - 1], 0x30
jmp 0x4379b8
cmp edi, 0xa
jne 0x4378ef
jmp 0x43786d
cmp ecx, 0x64
jb 0x4378ab
mov edi, 0x64
mov eax, ecx
xor edx, edx
div edi
shl edx, 1
lea eax, [0x44d760]
add eax, edx
mov dl, byte [eax + 1]
mov edi, esi
add edi, 0xffffffff
mov byte [esi - 1], dl
mov al, byte [eax]
add edi, 0xffffffff
mov byte [esi - 2], al
mov esi, 0x64
mov eax, ecx
xor edx, edx
div esi
mov ecx, eax
mov esi, edi
jmp 0x43786d
cmp ecx, 0xa
jae 0x4378c6
lea eax, str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
add eax, ecx
mov cl, byte [eax]
mov eax, esi
add eax, 0xffffffff
mov byte [esi - 1], cl
jmp 0x4378c4
jmp 0x4378ea
shl ecx, 1
lea edx, [0x44d760]
add edx, ecx
mov cl, byte [ecx + 0x44d761]
jmp 0x4378d9
mov eax, esi
add eax, 0xffffffff
mov byte [esi - 1], cl
mov cl, byte [edx]
add eax, 0xffffffff
mov byte [eax], cl
jmp 0x4378ea
jmp 0x4379b8
cmp edi, 0x10
sete al
test al, 1
jne 0x437900
jmp 0x4378fb
jmp 0x43798e
jmp 0x437902
cmp ecx, 0x100
jb 0x437951
mov eax, ecx
and eax, 0xff
mov edx, eax
xor edx, 0xffffffff
and edx, 2
mov edi, eax
and edi, 0xfffffffd
imul edi, edx
mov edx, eax
and edx, 2
or eax, 2
imul eax, edx
add eax, edi
mov bl, byte [eax + 0x44d82a]
mov edx, esi
add edx, 0xffffffff
mov byte [esi - 1], bl
mov al, byte [eax + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF]
add edx, 0xffffffff
mov byte [esi - 2], al
shr ecx, 8
mov esi, edx
jmp 0x437902
cmp ecx, 0x10
setb al
test al, 1
jne 0x43795d
jmp 0x43796e
mov cl, byte [ecx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov eax, esi
add eax, 0xffffffff
mov byte [esi - 1], cl
jmp 0x4379b8
shl ecx, 1
mov dl, byte [ecx + 0x44d82a]
mov eax, esi
add eax, 0xffffffff
mov byte [esi - 1], dl
mov cl, byte [ecx + str.000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F808182838485868788898A8B8C8D8E8F909192939495969798999A9B9C9D9E9FA0A1A2A3A4A5A6A7A8A9AAABACADAEAFB0B1B2B3B4B5B6B7B8B9BABBBCBDBEBFC0C1C2C3C4C5C6C7C8C9CACBCCCDCECFD0D1D2D3D4D5D6D7D8D9DADBDCDDDEDFE0E1E2E3E4E5E6E7E8E9EAEBECEDEEEFF0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF]
add eax, 0xffffffff
mov byte [esi - 2], cl
jmp 0x4379b8
cmp ecx, 0
jbe 0x4379b4
mov eax, ecx
xor edx, edx
div edi
mov al, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov ebx, esi
add ebx, 0xffffffff
mov byte [esi - 1], al
mov eax, ecx
xor edx, edx
div edi
mov ecx, eax
mov esi, ebx
jmp 0x43798e
mov eax, esi
jmp 0x4379b8
jmp 0x4379ba
add esp, 0xc
pop esi
pop edi
pop ebx
ret