Function at 0x422cd0
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
sub esp, 0x110
mov byte [0x42bcd9], 0xff
push ebx
push ebp
push esi
push edi
push 0x74b1ffff
mov edi, edx
mov ebp, ecx
push 0xbe21ffff
call fcn.0040e6b0
mov word [0x42bcec], ax
mov eax, dword [0x42bd0c]
push 0xb7abffff
push eax
call fcn.0040e480
movsx ecx, byte [0x42bce0]
add ecx, eax
add esp, 0x10
mov dword [0x42bcfc], eax
mov dword [0x42bd0c], ecx
xor eax, eax
mov byte [esp + eax + 0x20], al
inc eax
cmp eax, 0x100
jb 0x422d23
push 0x4193ffff
push 0xa0f1ffff
mov word [0x42bcec], 0xffff
mov byte [0x42bce0], 0
call fcn.0040e620
movsx edx, word [0x42bcea]
push edx
push 0x8c71ffff
mov word [0x42bcee], ax
mov byte [esp + 0x24], 0
xor bl, bl
call fcn.0040e670
add esp, 0x10
mov byte [0x42bcdb], al
mov byte [esp + 0x10], bl
xor esi, esi
push 0x1365ffff
push 0xd145ffff
call fcn.0040e620
push 0xa619ffff
push 0x6033ffff
mov dword [0x42bd0c], eax
call fcn.0040e580
mov byte [0x42bcdc], al
mov eax, esi
xor edx, edx
mov cl, byte [esp + esi + 0x30]
div edi
push 0x9bb5ffff
mov al, byte [edx + ebp]
mov dl, byte [esp + 0x24]
add al, cl
movsx ecx, word [0x42bcec]
add dl, al
push ecx
mov byte [esp + 0x28], dl
call fcn.0040e580
mov edx, dword [esp + 0x28]
mov cl, byte [esp + esi + 0x38]
and edx, 0xff
mov dword [0x42bcf8], eax
push 0xcf85ffff
lea eax, [esp + edx + 0x3c]
mov dl, byte [esp + edx + 0x3c]
mov byte [esp + esi + 0x3c], dl
mov byte [eax], cl
movsx eax, word [0x42bce2]
push eax
call fcn.0040e5d0
mov ecx, dword [0x42bd0c]
mov edx, dword [0x42bcfc]
push ecx
push edx
mov byte [0x42bcdb], al
call fcn.0040e500
mov word [0x42bce8], ax
add esp, 0x28
movsx ax, byte [0x42bce0]
imul eax, dword [0x42bd00]
inc esi
mov word [0x42bcf2], ax
cmp esi, 0x100
jb 0x422d7b
mov ecx, dword [esp + 0x12c]
test ecx, ecx
jbe 0x422fe8
mov ebp, dword [esp + 0x124]
mov eax, dword [esp + 0x128]
sub eax, ebp
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], eax
mov eax, dword [0x42bd14]
push eax
push 0xd057ffff
call fcn.0040e4c0
push 0xe785ffff
push 0x52d1ffff
mov word [0x42bce2], ax
call fcn.0040e540
movsx ecx, byte [0x42bcdc]
push 0xb091ffff
push ecx
mov dword [0x42bd18], eax
call fcn.0040e5d0
mov cl, byte [esp + 0x2c]
mov byte [0x42bcd9], al
inc cl
mov byte [0x42bcde], 1
mov byte [esp + 0x2c], cl
mov edx, dword [esp + 0x2c]
and edx, 0xff
movsx eax, al
mov cl, byte [esp + edx + 0x38]
lea esi, [esp + edx + 0x38]
add bl, cl
mov cx, word [0x42bcf2]
xor edx, edx
mov byte [esp + 0x30], bl
test cx, cx
setne dl
imul eax, eax, 0x62c3ffff
mov word [0x42bce4], dx
mov dword [0x42bd08], eax
movsx edx, byte [0x42bcd8]
movsx ecx, cx
push ecx
push edx
call fcn.0040e4c0
mov ecx, dword [0x42bd0c]
mov dword [0x42bd10], eax
movsx eax, word [0x42bcf2]
push eax
push ecx
call fcn.0040e4c0
mov edx, dword [esp + 0x40]
mov byte [0x42bcd8], al
mov al, byte [esi]
and edx, 0xff
mov cl, byte [esp + edx + 0x48]
lea edi, [esp + edx + 0x48]
mov byte [esi], cl
mov byte [edi], al
mov edx, dword [0x42bd00]
movsx eax, byte [0x42bcde]
push edx
push eax
mov dword [0x42bcfc], 0x24e60000
mov dword [0x42bcf8], 0xbfadfffe
call fcn.0040e6b0
mov cl, byte [edi]
mov byte [0x42bcdf], al
mov al, byte [esi]
mov word [0x42bce4], 0xffff
add cl, al
mov eax, dword [esp + 0x4c]
and ecx, 0xff
push 0xa963ffff
push 0x6a2dffff
mov dl, byte [esp + ecx + 0x58]
mov cl, byte [eax + ebp]
xor dl, cl
mov ecx, 0x57a1ffff
mov byte [ebp], dl
mov edi, dword [0x42bcf8]
sub ecx, edi
mov dword [0x42bd08], ecx
call fcn.0040e540
movsx edx, word [0x42bcea]
push edx
push 0x777fffff
mov dword [0x42bd14], eax
mov byte [0x42bcdf], al
call fcn.0040e670
mov ecx, dword [esp + 0x50]
add esp, 0x40
inc ebp
dec ecx
mov dword [0x42bd14], eax
mov dword [esp + 0x10], ecx
jne 0x422e70
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x110
ret 0xc