Function at 0x100086c0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
sub esp, 0x114
movsx eax, byte [0x10047ba7]
push ebx
push ebp
mov ebp, ecx
push esi
mov ecx, dword [0x10047bd8]
push edi
push eax
mov edi, edx
push ecx
call fcn.10007880
mov dword [0x10047bcc], eax
mov al, byte [0x10047ba2]
mov esi, dword [0x10047bd4]
push 0x2847ffff
test al, al
mov eax, dword [0x10047bc8]
push 0x595bffff
setne dl
mov cx, ax
and eax, 0xe545ffff
imul cx, word [0x10047bb0]
mov dword [0x10047bc4], eax
xor eax, eax
test esi, esi
mov byte [0x10047ba9], dl
mov edx, dword [0x10047bd8]
setne al
add edx, eax
mov al, byte [0x10047ba5]
mov dword [0x10047bd8], edx
mov dl, byte [0x10047bba]
dec dl
mov word [0x10047bb0], cx
add al, dl
mov byte [0x10047ba5], al
call fcn.10007700
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
add word [0x10047bae], ax
add esp, 0x10
mov ebx, 0xff
call esi
mov dword [0x10047bc0], eax
push 0x1bd3ffff
push 0x3d07ffff
call fcn.10007830
add esp, 8
mov byte [0x10047ba0], al
mov byte [esp + 0x123], bl
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_IsCharUpperA]
mov cx, word [0x10047bae]
mov byte [0x10047ba9], al
mov al, byte [0x10047ba4]
neg al
inc cx
mov byte [0x10047ba7], al
add word [0x10047bbc], cx
dec ebx
call esi
mov dword [0x10047bc0], eax
push 0x1bd3ffff
push 0x3d07ffff
call fcn.10007830
add esp, 8
mov byte [0x10047ba0], al
mov byte [esp + ebx + 0x24], bl
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_IsCharUpperA]
mov dl, byte [0x10047ba4]
mov byte [0x10047ba9], al
mov ax, word [0x10047bae]
neg dl
inc ax
mov byte [0x10047ba7], dl
add word [0x10047bbc], ax
test ebx, ebx
jne 0x100087b9
movsx ecx, byte [0x10047ba1]
movsx edx, word [0x10047bb0]
and ecx, edx
mov edx, dword [0x10047bdc]
add edx, ecx
xor esi, esi
push 0x985ffff
push 0xb129ffff
mov dword [0x10047bdc], edx
mov word [0x10047bbc], si
call fcn.100077d0
add word [0x10047bb4], ax
mov eax, dword [0x10047be4]
mov ebx, dword [0x10047be0]
mov ecx, eax
and ecx, ebx
push 0xbfefffff
add word [0x10047bb0], cx
push eax
mov byte [esp + 0x24], 0
xor bl, bl
call fcn.10007880
mov dl, byte [0x10047ba6]
push 0x9cb1ffff
add dl, al
push 0x6f29ffff
mov byte [0x10047ba6], dl
call fcn.10007780
movsx edx, byte [0x10047ba5]
mov cl, byte [0x10047ba8]
push edx
inc cl
push 0x9a05ffff
mov dword [0x10047be4], eax
mov byte [esp + 0x30], bl
mov byte [0x10047ba8], cl
call fcn.100078b0
add esp, 0x20
mov byte [0x10047ba9], al
movsx ax, byte [0x10047ba0]
dec eax
xor edx, edx
add word [0x10047bbc], ax
mov eax, esi
div edi
mov al, byte [esp + esi + 0x24]
mov cl, byte [edx + ebp]
mov dl, byte [esp + 0x10]
add cl, al
add dl, cl
mov byte [esp + 0x10], dl
mov edx, dword [0x10047bc0]
push edx
push 0x2fcfffff
call fcn.10007740
mov ecx, dword [0x10047bd8]
push 0x8edbffff
add ecx, eax
movsx eax, word [0x10047bb6]
push eax
mov dword [0x10047bd8], ecx
call fcn.10007880
mov ecx, dword [esp + 0x20]
dec word [0x10047bac]
and ecx, 0xff
mov byte [0x10047ba8], al
push 0xe5fffff
mov dl, byte [esp + ecx + 0x38]
lea eax, [esp + ecx + 0x38]
mov cl, byte [esp + esi + 0x38]
mov byte [esp + esi + 0x38], dl
mov byte [eax], cl
mov eax, dword [0x10047bc4]
lea ecx, [eax + eax*8]
lea edx, [eax + ecx*2]
movsx ecx, word [0x10047bb6]
lea eax, [eax + edx*4]
push ecx
lea eax, [eax + eax*2]
shl eax, 0x15
mov dword [0x10047bc4], eax
call fcn.10007700
add esp, 0x18
inc esi
cmp esi, 0x100
mov word [0x10047bb8], ax
jb 0x100088bd
mov edx, dword [0x10047bc4]
push 0x32afffff
push edx
call fcn.10007880
mov ecx, dword [0x10047bd0]
mov word [0x10047bb6], ax
mov eax, dword [0x10047bd8]
add esp, 8
lea edx, [ecx + eax + 0x5cafffff]
mov eax, dword [esp + 0x130]
test eax, eax
mov dword [0x10047bd0], edx
jbe 0x10008b3d
mov ebp, dword [esp + 0x128]
mov ecx, dword [esp + 0x12c]
sub ecx, ebp
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], ecx
jmp 0x100089df
mov bl, byte [esp + 0x10]
movsx eax, word [0x10047bbc]
movsx ecx, byte [0x10047ba8]
push eax
push ecx
call fcn.10007650
add word [0x10047bac], ax
mov al, byte [esp + 0x1c]
inc al
mov byte [0x10047ba4], 0xfe
mov byte [esp + 0x1c], al
mov edx, dword [esp + 0x1c]
and edx, 0xff
lea esi, [esp + edx + 0x2c]
mov dl, byte [esp + edx + 0x2c]
add bl, dl
mov byte [esp + 0x18], bl
mov eax, dword [esp + 0x18]
and eax, 0xff
mov cl, byte [esp + eax + 0x2c]
lea edi, [esp + eax + 0x2c]
mov al, dl
mov byte [esi], cl
mov byte [edi], al
movsx edx, word [0x10047bb8]
movsx eax, byte [0x10047ba4]
push edx
push eax
call fcn.100075f0
mov edx, dword [0x10047bcc]
mov ebx, dword [0x10047be0]
mov ecx, dword [esp + 0x30]
add edx, 0x5b660001
mov dword [0x10047bcc], edx
xor edx, edx
add ebx, eax
cmp word [0x10047bac], dx
mov dword [0x10047be0], ebx
mov bl, byte [ecx + ebp]
setne dl
push 0x709dffff
push 0xa4cdffff
mov word [0x10047bb0], dx
call fcn.10007700
mov cl, byte [edi]
mov dl, byte [esi]
add cl, dl
add esp, 0x18
mov byte [esp + 0x1c], cl
xor ecx, ecx
cmp word [0x10047bba], cx
mov dword [0x10047bd8], eax
setne cl
add word [0x10047bb2], cx
neg eax
mov word [0x10047bb8], ax
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edx, dword [esp + 0x1c]
mov byte [0x10047ba3], al
and edx, 0xff
push 0xbba5ffff
mov al, byte [esp + edx + 0x28]
xor al, bl
mov byte [ebp], al
movsx ecx, word [0x10047bb2]
push ecx
call fcn.10007700
mov edi, dword [0x10047be0]
mov esi, dword [0x10047bd0]
add edi, eax
add esi, 0x64400001
add esp, 8
mov dword [0x10047be0], edi
mov dword [0x10047bd0], esi
call dword [sym.imp.USER32.dll_GetCapture]
mov dl, byte [0x10047ba7]
add dl, al
mov eax, dword [esp + 0x18]
inc ebp
dec eax
mov byte [0x10047ba7], dl
mov dword [esp + 0x18], eax
jne 0x100089db
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x114
ret 0xc