Function at 0x447057
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push edx
add edx, 0x9811
sub edx, 0x4d35
pop edx
push edx
or edx, 0x10094
call 0x446f10
add byte [esi + 0x39], cl
aaa
dec ebp
dec ebx
aas
add esp, 4
pop edx
push ecx
push ecx
add esp, 4
and ecx, 0xf650
pop ecx
lea edx, [ebp - 0x16cc]
mov dword [ebp - 0xc28], edx
mov eax, dword [ebp - 0x4d8]
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0xc24], ecx
xor edx, edx
mov word [ebp - 0x1fc], dx
xor eax, eax
mov word [ebp - 0x104], ax
push ecx
push edx
add esp, 4
jmp 0x446f58
sub ecx, 0x84c1
or ecx, 0xccda
or ecx, 0x13f0b
pop ecx
push eax
and eax, 0x221d
jmp 0x446f77
jmp 0x446f7e
pop eax
mov ecx, dword [ebp - 0xc24]
mov dx, word [ecx]
mov word [ebp - 0xf82], dx
mov eax, dword [ebp - 0xc24]
add eax, 2
mov dword [ebp - 0xc24], eax
mov cx, word [ebp - 0xf82]
mov word [ebp - 0x1fc], cx
mov edx, dword [ebp - 0xc28]
mov ax, word [edx]
mov word [ebp - 0xf84], ax
mov ecx, dword [ebp - 0xc28]
add ecx, 2
mov dword [ebp - 0xc28], ecx
mov dx, word [ebp - 0xf84]
mov word [ebp - 0x104], dx
push edx
push edi
add esp, 4
add edx, 0x17e3e
sub edx, 0x131f6
add edx, 0x4e88
sub edx, 0x122b2
pop edx
push ecx
or ecx, 0x166a5
add ecx, 0x7d0
add ecx, 0x94d2
pop ecx
movzx eax, word [ebp - 0x104]
test eax, eax
jne 0x44702e
movzx ecx, word [ebp - 0x1fc]
movzx edx, word [ebp - 0x104]
sub ecx, edx
mov dword [ebp - 0x14e4], ecx
jmp 0x447091
movzx eax, word [ebp - 0x1fc]
movzx ecx, word [ebp - 0x104]
cld
invalid
invalid
invalid
cmp eax, ecx
je 0x446f4d
movzx edx, word [ebp - 0x1fc]
xor edx, 0x20
movzx eax, word [ebp - 0x104]
cmp edx, eax
je 0x446f4d
movzx ecx, word [ebp - 0x1fc]
movzx edx, word [ebp - 0x104]
cmp ecx, edx
jge 0x44707b
mov dword [ebp - 0x14e0], 0xffffffff
jmp 0x447085
mov dword [ebp - 0x14e0], 1
mov eax, dword [ebp - 0x14e0]
mov dword [ebp - 0x14e4], eax
cmp dword [ebp - 0x14e4], 0
jne 0x4470da
push esi
add esi, 0x11416
call 0x4470b0
add byte [esi], bh
xor al, byte [ebx + 0x45]
cmp dword [eax + 0x42], edx
dec ebp
push eax
add esp, 4
xor esi, 0x10c40
or esi, 0x14e09
pop esi
push ecx
push esi
add esp, 4
or ecx, 0x1537e
pop ecx
mov ecx, dword [ebp - 0x4d8]
mov dword [ebp - 0x6ec], ecx
jmp 0x447142
push esi
sub esi, 0x10917
or esi, 0xbea1
add esi, 0x16a4
sub esi, 0x13f2
pop esi
push ebx
call 0x447102
add byte [edx + 0x34], al
dec edi
dec edi
inc esp
dec edi
add esp, 4
add ebx, 0x1cd4
pop ebx
mov edx, dword [ebp - 0x4d8]
mov eax, dword [edx]
mov dword [ebp - 0x4d8], eax
mov ecx, dword [ebp - 0x4d8]
cmp ecx, dword [ebp - 0xc2c]
je 0x447138
mov edx, dword [ebp - 0x4d8]
cmp dword [edx + 0x30], 0
jne 0x446eee
mov dword [ebp - 0x6ec], 0
push ecx
push ecx
add esp, 4
xor ecx, 0xb3d3
or ecx, 0x9688
add ecx, 0xae3a
pop ecx
push ebx
push ecx
add esp, 4
xor ebx, 0x170b0
pop ebx
push eax
add eax, 0x792b
or eax, 0x42d0
pop eax
cmp dword [ebp - 0x6ec], 0
jne 0x4471be
push eax
and eax, 0x13b3
call 0x447193
add byte [edx + edi], dh
xor al, 0x41
aas
dec ecx
cmp dword [ebx + 0x44], ecx
add esp, 4
and eax, 0x19dc
call 0x4471ab
add byte [ebp + 0x4c], al
cmp byte [ebp + 0x39], cl
inc edx
dec esp
dec esi
aas
add esp, 4
pop eax
mov dword [ebp - 0x738], 0
add cl, ch
daa
or eax, dword [eax]
invalid
push ebx
push edi
add esp, 4
add ebx, 0xb16d
jmp 0x4471d1
jmp 0x4471d7
pop ebx
push ebx
push edi
add esp, 4
sub ebx, 0x5ae4
and ebx, 0x4dfa
or ebx, 0x1760a
pop ebx
mov eax, dword [ebp - 0x6ec]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x2f8], ecx
mov dword [ebp - 0x6fc], 0
mov edx, dword [ebp - 0x2f8]
mov dword [ebp - 0x14e8], edx
cmp dword [ebp - 0x14e8], 0
jne 0x44722f
mov eax, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], eax
jmp 0x447520
mov ecx, dword [ebp - 0x14e8]
mov edx, dword [ebp - 0x2f8]
add edx, dword [ecx + 0x3c]
mov dword [ebp - 0x14ec], edx
jne 0x447257
mov eax, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], eax
jmp 0x447520
mov ecx, 8
imul edx, ecx, 0
mov eax, dword [ebp - 0x14ec]
mov ecx, dword [eax + edx + 0x78]
mov dword [ebp - 0x14f0], ecx
cmp dword [ebp - 0x14f0], 0
jne 0x447289
mov edx, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], edx
jmp 0x447520
mov eax, dword [ebp - 0x2f8]
add eax, dword [ebp - 0x14f0]
mov dword [ebp - 0x6f0], eax
jne 0x4472ae
mov ecx, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], ecx
jmp 0x447520
mov edx, dword [ebp - 0x6f0]
mov eax, dword [ebp - 0x2f8]
add eax, dword [edx + 0x20]
mov dword [ebp - 0x18a0], eax
mov ecx, dword [ebp - 0x6f0]
mov edx, dword [ebp - 0x2f8]
add edx, dword [ecx + 0x24]
mov dword [ebp - 0x18a4], edx
mov eax, dword [ebp - 0x6f0]
mov ecx, dword [ebp - 0x2f8]
add ecx, dword [eax + 0x1c]
mov dword [ebp - 0x18a8], ecx
mov dword [ebp - 0x6f4], 0
jmp 0x447308
mov edx, dword [ebp - 0x6f4]
add edx, 1
mov dword [ebp - 0x6f4], edx
mov eax, dword [ebp - 0x6f0]
mov ecx, dword [ebp - 0x6f4]
cmp ecx, dword [eax + 0x18]
jae 0x447514
mov edx, dword [ebp - 0x6f4]
mov eax, dword [ebp - 0x18a0]
mov ecx, dword [ebp - 0x2f8]
add ecx, dword [eax + edx*4]
mov dword [ebp - 0x6f8], ecx
mov edx, dword [ebp - 0x6f4]
mov eax, dword [ebp - 0x18a4]
movzx ecx, word [eax + edx*2]
mov edx, dword [ebp - 0x18a8]
mov eax, dword [ebp - 0x2f8]
add eax, dword [edx + ecx*4]
mov dword [ebp - 0x18ac], eax
mov dword [ebp - 0x180], 0
jmp 0x447378
mov ecx, dword [ebp - 0x180]
add ecx, 1
mov dword [ebp - 0x180], ecx
mov edx, dword [ebp - 0x6f8]
add edx, dword [ebp - 0x180]
movsx eax, byte [edx]
test eax, eax
je 0x44742a
mov ecx, dword [ebp - 0x180]
movsx edx, byte [ebp + ecx - 0x820]
test edx, edx
je 0x44742a
push eax
push ecx
add esp, 4
add eax, 0x1324c
sub eax, 0x207b
xor eax, 0x12d0d
pop eax
push ebx
xor ebx, 0x18067
sub ebx, 0x2363
and ebx, 0xf8f8
xor ebx, 0x4229
pop ebx
mov eax, dword [ebp - 0x6f8]
add eax, dword [ebp - 0x180]
movsx ecx, byte [eax]
mov edx, dword [ebp - 0x180]
movsx eax, byte [ebp + edx - 0x820]
cmp ecx, eax
je 0x44741c
mov ecx, dword [ebp - 0x6f8]
add ecx, dword [ebp - 0x180]
movsx edx, byte [ecx]
xor edx, 0x20
mov eax, dword [ebp - 0x180]
movsx ecx, byte [ebp + eax - 0x820]
cmp edx, ecx
jne 0x447423
jmp 0x447369
jmp 0x44742a
push eax
and eax, 0x15865
add eax, 0x166e4
and eax, 0x852b
pop eax
push ebx
push ecx
add esp, 4
and ebx, 0x13ebd
and ebx, 0x11e99
xor ebx, 0x5706
sub ebx, 0xeeb
pop ebx
mov edx, dword [ebp - 0x6f8]
add edx, dword [ebp - 0x180]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0x180]
movsx edx, byte [ebp + ecx - 0x820]
cmp eax, edx
jne 0x447489
mov dword [ebp - 0xc30], 0
jmp 0x4474f8
push ecx
and ecx, 0x26f6
pop ecx
push edi
push ecx
add esp, 4
and edi, 0x15349
xor edi, 0xded4
and edi, 0x12968
pop edi
push ebx
call 0x4474b7
add byte [edx + edi], dh
inc esp
cmp byte [edi], bh
push eax
cmp eax, 0x5b04c483
mov eax, dword [ebp - 0x6f8]
add eax, dword [ebp - 0x180]
movsx ecx, byte [eax]
or ecx, 0x20
mov edx, dword [ebp - 0x180]
movsx eax, byte [ebp + edx - 0x820]
or eax, 0x20
cmp ecx, eax
jge 0x4474ee
mov dword [ebp - 0xc30], 0xffffffff
jmp 0x4474f8
mov dword [ebp - 0xc30], 1
cmp dword [ebp - 0xc30], 0
jne 0x44750f
mov ecx, dword [ebp - 0x18ac]
mov dword [ebp - 0x3c4], ecx
jmp 0x447520
jmp 0x4472f9
mov edx, dword [ebp - 0x6fc]
mov dword [ebp - 0x3c4], edx
cmp dword [ebp - 0x3c4], 0
je 0x4475fb
push edx
xor edx, 0xca53
call 0x447540
add byte [edi], bh
xor al, byte [ecx + 0x3d]
push eax
xor al, byte [ebx - 0x357efb3c]
loop 0x447548
add byte [edx + 0x53], bl
sub ebx, 0x142d4
or ebx, 0xa258
pop ebx
push edi
jmp 0x44755e
pop edi
mov eax, dword [ebp - 0x3c4]
mov dword [ebp - 0x18b0], eax
push esi
sub esi, 0xef6c
xor esi, 0xa85e
pop esi
push eax
push ebx
add esp, 4
add eax, 0x184f3
pop eax
push ecx
push eax
add esp, 4
add ecx, 0x15567
xor ecx, 0xc2b8
xor ecx, 0xd8f7
pop ecx
mov ecx, dword [ebp - 0x18b0]
mov dword [ebp - 0x18b4], ecx
lea edx, [ebp - 0x1628]
push edx
call dword [ebp - 0x18b4]
test eax, eax
jne 0x4475fb
push ebx
push eax
push edi
add esp, 4
jmp 0x447608
add eax, 0x8684
add eax, 0x17998
sub eax, 0x151b1
pop eax
push ecx
push ebx
add esp, 4
sub ecx, 0x40a1
and ecx, 0x2fe9
pop ecx
mov eax, dword fs:[0x18]
mov dword [ebp - 0x18b8], eax
mov ecx, dword [ebp - 0x18b8]
mov edx, dword [ecx + 0x30]
mov dword [ebp - 0x18bc], edx
mov eax, dword [ebp - 0x18bc]
mov dword [ebp - 0x14f4], eax
push edx
push edi
add esp, 4
push ecx
jmp 0x447ceb
pop ecx
push ecx
push eax
add esp, 4
and ecx, 0xe510
call 0x447d05
add byte [edx], dh
aaa
xor eax, dword [edi + 0x4d]
dec edx
aaa
inc ecx
add esp, 4
add ecx, 0x14b3c
jmp 0x447d16
pop ecx
mov ecx, dword [ebp - 0x3cc]
add ecx, 0xe
mov dword [ebp - 0x1918], ecx
push ebx
push eax
add esp, 4
xor ebx, 0x1712d
pop ebx
push ecx
or ecx, 0x13af6
jmp 0x447d40
pop ecx
push eax
add eax, 0x13e6d
sub eax, 0x19fc
jmp 0x447d57
pop eax
cmp dword [ebp - 0x3cc], 0
je 0x447d6a
cmp dword [ebp - 0xa5c], 0
jne 0x447db0
push ebx
call 0x447d79
add byte [ebx + 0x43], al
xor dl, byte [eax + 0x46]
aas
inc esp
add esp, 4
call 0x447d8c
add byte [edi + 0x4c], al
inc ebp
dec edi
inc eax
inc esi
xor al, 0x45
aas
dec edx
add esp, 4
add ebx, 0x8c0a
and ebx, 0xb344
pop ebx
mov edx, dword [ebp - 0x738]
mov dword [ebp - 0x18d0], edx
push 0
call dword [ebp - 0x18d0]
mov dword [ebp - 0x1fb0], 0xa
push edx
call 0x447dca
add byte [edx + 0x3f], cl
xor al, 0x4b
inc ebx
dec esp
xor edi, dword [eax]
cmp al, 0x83
les eax, [ecx + eax*4]
retf 0x5a4d