Function at 0x10007700
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
push ebx
push esi
push edi
mov dword [ebp - 0x1c], edx
mov edi, ecx
mov dword [ebp - 0x24], edi
mov ax, word [0x1000f068]
movzx eax, byte [0x1000f005]
mov word [ebp - 8], ax
mov eax, 0x94d0
mov dword [ebp - 0x40], 0x7e7a
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x14], 0x7a27
mov word [ebp - 0xc], ax
movzx eax, byte [0x1000f01a]
mov byte [ebp - 3], al
movzx eax, word [0x1000f094]
mov byte [ebp - 3], 0x63
mov dword [ebp - 0x20], eax
movzx eax, byte [0x1000f004]
mov byte [ebp - 1], al
mov ax, word [0x1000f068]
movzx eax, word [0x1000f070]
mov dword [ebp - 0x38], 0x94bf819c
mov dword [ebp - 0x34], 0x45e83
mov dword [ebp - 0x20], eax
movzx eax, word [0x1000f074]
cdq
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
mov bl, byte [0x1000f005]
movzx eax, word [0x1000f0a4]
mov byte [ebp - 2], al
mov eax, 0x9d
mov dword [ebp - 0x30], 0x5bbf1b5c
mov dword [ebp - 0x2c], 0x8d469
mov word [ebp - 0x10], ax
mov eax, dword [0x1000f078]
or eax, dword [0x1000f07c]
mov dword [ebp - 0x18], 0xeca5
je 0x10007858
movzx eax, word [0x1000f094]
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
cdq
cmp ecx, edx
jb 0x10007805
ja 0x100077e5
cmp esi, eax
jbe 0x10007805
movzx eax, byte [ebp - 2]
add word [0x1000f018], ax
mov eax, dword [ebp - 0x20]
mov cl, al
shl cl, 4
add cl, al
shl cl, 2
add byte [0x1000f01d], cl
jmp 0x10007858
test bl, bl
je 0x10007816
cmp byte [0x1000f01d], 0
jne 0x10007816
xor ecx, ecx
jmp 0x1000781b
mov ecx, 1
mov ax, word [0x1000f090]
cmp ax, word [ebp - 8]
sbb eax, eax
inc eax
cmp ecx, eax
ja 0x10007858
cmp word [0x1000f018], 0
movsx ax, byte [0x1000f01e]
mov word [ebp - 0xc], ax
je 0x10007849
mov eax, 0x30b4
jmp 0x10007852
mov ax, word [0x1000f074]
movzx eax, ax
mov word [0x1000f04c], ax
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
not cx
mov edx, dword [0x1000f010]
mov eax, dword [0x1000f014]
mov eax, dword [0x1000f078]
movzx ecx, cx
add eax, 0xfffffffd
add dx, cx
mov dword [0x1000f020], 8
movzx ecx, dx
add eax, ecx
mov dword [0x1000f024], 0
mov word [0x1000f050], ax
movsx eax, byte [ebp - 1]
cmp word [0x1000f054], 0
cdq
mov dword [0x102912f0], eax
mov dword [0x102912f4], edx
je 0x100078bc
mov esi, 0xb651
xor edx, edx
jmp 0x100078c8
mov esi, dword [0x1000f028]
mov edx, dword [0x1000f02c]
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x10007b3b
mov eax, dword [ebp - 0x1c]
sub eax, edi
mov dword [ebp - 0x1c], eax
mov ax, word [ebp - 0x18]
mov word [ebp + 0xa], ax
movzx eax, word [str._k]
add ax, 0x45
mov word [0x1000f04c], ax
movzx ecx, word [0x1000f074]
movzx eax, word [ebp - 8]
imul ecx, eax
add cx, word [ebp - 8]
mov eax, dword [0x100b0edc]
mov word [ebp - 8], cx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
add eax, 0x38d
mov dword [ebp - 0x18], eax
mov ax, word [0x1000f04c]
mov ax, word [0x1000f050]
mov eax, dword [ebp - 0x10]
add eax, 0x4e
mov dword [ebp - 0x2c], eax
cmp byte [0x1000f01b], 0
je 0x10007986
mov eax, dword [0x1000f09c]
cmp esi, eax
jne 0x1000794c
test edx, edx
jne 0x1000794c
xor ecx, ecx
jmp 0x10007951
mov ecx, 1
cmp esi, 0x28
jne 0x1000795e
test edx, edx
jne 0x1000795e
xor eax, eax
jmp 0x10007963
mov eax, 1
cmp ecx, eax
jbe 0x10007973
mov al, byte [0x10156144]
mov byte [0x1000f01a], al
jmp 0x100079c6
cmp word [ebp - 0xc], 0
je 0x100079c6
movsx eax, byte [ebp - 1]
sub dword [0x1000f060], eax
jmp 0x100079c6
mov ecx, dword [0x1000f028]
mov eax, dword [0x1000f02c]
cmp eax, dword [0x1000f034]
ja 0x100079c6
jb 0x100079a3
cmp ecx, dword [0x1000f030]
ja 0x100079c6
movsx eax, word [str._k]
sub eax, 0x6a3e45e6
mov dword [ebp - 0x20], eax
mov eax, dword [0x100b0edc]
mov dword [0x1000f028], eax
mov dword [0x1000f02c], 0
mov eax, dword [ebp - 0x10]
add eax, 0x27a
mov dword [ebp - 0x20], eax
mov byte [0x1000f004], 0x93
mov ecx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x3c]
add ecx, 0x93
movzx eax, byte [0x1000f004]
cdq
adc esi, 0
cmp eax, ecx
jne 0x10007a2d
cmp edx, esi
jne 0x10007a2d
mov ax, word [0x1000f044]
mov ecx, 0xb652
cmp ax, cx
jne 0x10007a2d
mov ax, word [0x1000f074]
xor ecx, ecx
test ax, ax
mov eax, 0xb651
cmove ecx, eax
mov word [0x1000f068], cx
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x34]
mov byte [0x1000f003], cl
mov eax, dword [0x102a4fdc]
mov byte [0x1000f004], 0x93
mov dword [ebp - 0x38], eax
mov eax, dword [0x100b0edc]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x14]
movsx cx, byte [ebp - 3]
cdq
mov esi, eax
mov ax, word [ebp + 0xa]
neg esi
adc edx, 0
sub ax, cx
mov ecx, dword [ebp - 0x10]
neg edx
add ecx, 0x2e6
mov word [ebp + 0xa], ax
mov dword [ebp - 0x2c], ecx
movzx ecx, ax
mov eax, dword [ebp - 0x14]
add eax, 0x6488
mov dword [0x1000f078], 6
add eax, ecx
mov dword [0x1000f07c], 0
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
add eax, 0xf1
mov dword [ebp - 0x28], eax
mov dword [0x1000f008], 0x1c62
mov dword [0x1000f00c], 0
movzx eax, word [0x1000f0a4]
mov cl, byte [0x1000f005]
add cl, al
mov byte [0x1000f005], cl
mov eax, dword [ebp - 0x10]
add eax, 0x195
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
sub ecx, eax
cmp ecx, 0x3ff
je 0x10007b27
mov dword [0x1000f09c], 0x66fd2e56
movsx eax, word [0x1000f050]
movsx ecx, byte [0x1000f01d]
xor ecx, eax
mov ax, word [0x1000f050]
sub ax, cx
mov word [0x1000f050], ax
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x1c]
mov al, byte [eax + edi]
mov byte [edi], al
inc edi
sub ebx, 1
jne 0x100078e3
mov eax, dword [ebp - 0x24]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret