Function at 0x44cf54
Capabilities:
Encrypt data using rc4 prga
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xe4
mov edi, dword [esp + 0xf8]
mov ebx, dword [esp + 0xfc]
mov eax, edx
mov edx, ecx
call 0x44cf75
pop ecx
lea esi, [esp + 0x18]
mov dword [esp + 0x14], ecx
mov ecx, esi
push eax
call fcn.0050b140
pop eax
lea ebp, [esp + 0x38]
mov edx, edi
mov ecx, ebp
push ebx
call fcn.0050b140
pop eax
mov edi, dword [esi + 4]
mov esi, dword [ebp + 4]
cmp edi, esi
jne 0x44cfea
mov al, byte [esp + 0x34]
cmp al, byte [esp + 0x54]
jne 0x44cfea
cmp byte [esp + 0x35], 2
jne 0x44cfea
cmp byte [esp + 0x55], 2
jne 0x44cfea
cmp byte [esp + 0x20], 3
setb al
cmp byte [esp + 0x40], 3
setb cl
xor cl, al
jne 0x44cfea
mov ecx, dword [esp + 0x18]
mov edx, edi
push edi
push dword [esp + 0x3c]
call fcn.0044f299
pop ecx
pop edx
mov ecx, eax
mov al, 1
test cl, cl
jne 0x44d250
mov al, byte [esp + 0x20]
mov dword [esp + 8], edi
cmp al, 6
je 0x44d01f
mov ecx, dword [esp + 0x30]
movsd xmm0, qword [esp + 0x21]
movsd xmm1, qword [esp + 0x29]
mov dword [esp + 0x97], ecx
movsd qword [esp + 0x90], xmm1
movsd qword [esp + 0x88], xmm0
mov cl, byte [esp + 0x36]
mov ch, byte [esp + 0x40]
movsd xmm0, qword [esp + 0x88]
movsd xmm1, qword [esp + 0x90]
mov ebp, dword [esp + 0x18]
mov ah, byte [esp + 0x35]
mov edi, dword [esp + 0x97]
mov edx, dword [esp + 0x38]
mov dword [esp + 0xc], esi
mov byte [esp + 4], cl
mov cl, byte [esp + 0x34]
cmp ch, 6
movsd qword [esp + 0x60], xmm1
movsd qword [esp + 0x58], xmm0
mov dword [esp + 0x67], edi
je 0x44d096
mov esi, dword [esp + 0x50]
movsd xmm0, qword [esp + 0x41]
movsd xmm1, qword [esp + 0x49]
mov dword [esp + 0xd3], esi
movsd qword [esp + 0xcc], xmm1
movsd qword [esp + 0xc4], xmm0
lea ebx, [esp + 0xc4]
lea edi, [esp + 0x88]
movsd xmm2, qword [esp + 0x60]
mov esi, dword [ebx + 0xf]
movsd xmm0, qword [ebx]
mov dword [ebx], ebp
movsd xmm1, qword [ebx + 8]
mov ebp, dword [esp + 0x67]
mov dword [edi + 0x18], esi
mov esi, dword [esp + 8]
movsd qword [edi + 0x11], xmm1
movsd qword [edi + 9], xmm0
mov dword [edi], edx
movzx edx, word [esp + 0x54]
mov dword [ebx + 4], esi
mov byte [ebx + 8], al
movsd qword [ebx + 0x11], xmm2
movsd xmm2, qword [esp + 0x58]
mov al, byte [esp + 4]
mov dword [ebx + 0x18], ebp
movsd qword [ebx + 9], xmm2
mov byte [ebx + 0x1c], cl
mov byte [ebx + 0x1d], ah
mov byte [ebx + 0x1e], al
mov ebx, dword [esp + 0xc]
mov al, byte [esp + 0x56]
mov dword [edi + 4], ebx
mov byte [edi + 8], ch
mov word [edi + 0x1c], dx
mov byte [edi + 0x1e], al
lea ecx, [esp + 0xa8]
lea edx, [esp + 0xc4]
call fcn.005081c0
movzx ebx, byte [esp + 0xa8]
cmp ebx, 0xa
je 0x44d238
mov edx, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb8]
mov al, byte [esp + 0xa9]
mov esi, dword [esp + 0xac]
mov edi, dword [esp + 0xb0]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
lea ecx, [esp + 0x6c]
lea edx, [esp + 0x88]
mov byte [esp + 0xc], al
call fcn.005081c0
mov cl, byte [esp + 0x6c]
cmp cl, 0xa
je 0x44d234
mov eax, ebx
mov ebp, 0
mov ch, cl
add al, 0xfa
movzx edx, al
inc edx
cmp al, 4
cmovae edx, ebp
add ch, 0xfa
movzx eax, ch
inc eax
cmp ch, 4
cmovae eax, ebp
cmp edx, eax
jne 0x44d234
mov ebp, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
cmp edx, 4
je 0x44d1eb
test edx, edx
jne 0x44d10f
cmp ch, 4
jb 0x44d10f
cmp bl, cl
jne 0x44d234
mov cl, byte [esp + 0x6d]
mov edx, dword [ebx*4 + 0x44d25c]
mov byte [esp + 3], cl
mov ecx, dword [esp + 0x78]
add edx, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x7c]
jmp edx
mov ecx, esi
mov edx, edi
push eax
push ebp
call fcn.0044f299
pop ecx
pop edx
test al, al
jne 0x44d10f
jmp 0x44d234
xor eax, eax
jmp 0x44d250
lea esi, [esp + 0x6c]
lea edx, [esp + 0x88]
mov ecx, esi
call fcn.005081c0
cmp byte [esi], 0xa
sete al
add esp, 0xe4
pop esi
pop edi
pop ebx
pop ebp
ret