Function at 0x10022d26
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
mov eax, dword [ebp + 8]
push ebx
lea ecx, [eax + 0x514]
push esi
mov edx, eax
push edi
mov dword [esp + 0x18], edx
mov dword [esp + 0x2c], ecx
cmp eax, ecx
ja 0x10022dfa
mov esi, dword [ebp + 0xc]
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x2c]
cmp edx, 0x943
ja 0x10022c53
je 0x10022c41
cmp edx, 0x849
ja 0x10022ba9
je 0x10022b96
lea eax, [edx - 0x74f]
cmp eax, 0xc8
ja case.0x10022d67.31506
movzx eax, byte [eax + 0x10022ea4]
jmp dword [eax*4 + 0x10022e8c]
cmp byte [esi - 0x1c], dh
dec ecx
mov ecx, dword ss:[ebp + 0x1c]
mov ecx, dword [ecx]
cmp dword [ecx + 0x3e], 0xffffffff
je 0x10022b33
mov edx, 0x7742
lea ebx, [ebx]
mov eax, edx
sub eax, 0x7742
je 0x10022b22
dec eax
je 0x10022dfa
jmp 0x10022b2a
mov dword [esp + 0x14], 1
inc edx
cmp edx, 0x7743
jbe 0x10022b10
mov eax, dword [0x100310ec]
push 0x42
call fcn.100111b0
add esp, 4
jmp 0x10022e69
mov al, byte [ebx + 1]
sub al, 0x30
mov byte [edi + 4], al
jmp case.0x10022d67.31506
mov ecx, dword [0x10033580]
mov dword [edi + 0xc], ecx
jmp case.0x10022d67.31506
mov dword [edi + 8], 0x4c339
jmp case.0x10022d67.31506
jo 0x10022b77
ret 0x13a8
add ch, byte [edx + 4]
push 0x42
add al, 0x6a
inc edx
push str.LUMA
push eax
call fcn.10017ba0
add esp, 0x10
mov edi, eax
mov ebx, str.suck
jmp 0x10022e69
or eax, 0x7a90a4d2
mov cl, byte [ebx + 3]
sub cl, 0x30
mov byte [edi + 5], cl
jmp case.0x10022d67.31506
add byte [eax], al
lea eax, [edx - 0x87b]
cmp eax, 0x96
ja case.0x10022d67.31506
movzx eax, byte [eax + 0x10022f84]
jmp dword [eax*4 + 0x10022f70]
jno 0x10022ba7
jns 0x10022b79
mov ah, 0x8b
inc ebp
sbb al, 0x83
add byte [edx - 0x17], al
xchg ebp, eax
add al, byte [eax]
add byte [esi - 0x14], al
inc esi
in al, dx
inc esi
in al, dx
inc esp
xlatb
mov al, byte [ebx + 4]
cmp al, 0x2e
jne 0x10022c10
mov eax, 0x4395
cmp eax, eax
jne 0x10022c04
mov cl, 0x53
jne 0x10022be2
sbb eax, 0x80054b8a
jmp 0x1651b42b
add eax, 0x18
cmp eax, 0x4395
jbe 0x10022beb
jmp 0x10022c17
test al, al
sete byte [esp + 0xf]
cmp byte [esp + 0xf], 0
je case.0x10022d67.31506
mov byte [edi + 7], 1
jmp case.0x10022d67.31506
cmp dword [0x10140ffc], 7
jne case.0x10022d67.31506
or byte [edi + 7], 0x10
jmp case.0x10022d67.31506
jle 0x10022c5c
or ebp, dword [0x142444c7]
add byte [eax], al
add byte [eax], al
jmp case.0x10022d67.31506
cmp edx, 0x61e8
ja 0x10022d4f
add byte [eax], al
add byte [edi], cl
test byte [ebx - 0x7f000000], dl
cli
push ss
cmp al, 0
add byte [edi + 0x61], dh
je 0x10022cf8
cmp edx, 0x3c16
ja 0x10022cce
je 0x10022ca4
cmp edx, 0x975
je 0x10022dfa
cmp edx, 0x3be4
jne case.0x10022d67.31506
dec ecx
pop ebp
lodsd eax, dword [esi]
shr dword [ebx - 0x74e948f1], cl
inc ebp
adc byte [edx - 0x7d], dl
rcr byte [edx], 0x50
call fcn.1002a980
add esp, 8
jmp 0x10022e69
push es
arpl si, di
std
or byte [ebx + 0x3980184d], 3
jne case.0x10022d67.31506
movzx edx, word [esi + 2]
mov eax, dword [ebp + 0x10]
push edx
add eax, 0x14
push eax
call fcn.1002a980
add esp, 8
jmp 0x10022e69
mov eax, edx
sub eax, 0x6184
je 0x10022ce5
sub eax, 0x32
je 0x10022e18
jmp case.0x10022d67.31506
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
jmp case.0x10022d67.31506
mov ecx, 0x4dc4
lea ecx, [ecx]
mov eax, ecx
sub eax, 0x4dc4
je 0x10022d14
sub eax, 0x31
je 0x10022dfa
jmp 0x10022d1b
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x14], eax
add ecx, 0x31
cmp ecx, 0x4df5
jbe 0x10022d00
loope 0x10022d5f
inc ebp
mov cs, word [ebx + 0x3980144d]
add byte [esp + eax - 0x80], dh
dec edi
pop es
and byte [ebx + 0x18452b06], cl
mov ecx, dword [ebp + 0x1c]
add eax, dword [ecx]
mov ecx, dword [ebp + 0x10]
mov dword [ecx + 0xb8], eax
jmp case.0x10022d67.31506
lea eax, [edx - 0x7b11]
cmp eax, 0x96
ja case.0x10022d67.31506
add byte [edi], cl
mov dh, 0x80
xor byte [eax], dh
add dl, byte [eax]
movzx eax, byte [eax + 0x10023030]
jmp dword [eax*4 + 0x1002301c]
mov eax, dword [esp + 0x28]
mov ecx, 0x2301
mov word [eax], cx
jmp case.0x10022d67.31506
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov ecx, dword [ebp + 0x18]
push 4
push edx
lea eax, [esp + 0x18]
push eax
push ecx
call fcn.10017ba0
add esp, 0x10
mov dword [esp + 0x28], eax
test eax, eax
jne 0x10022e69
mov ecx, 0x24c9
lea esp, [esp]
mov eax, ecx
sub eax, 0x24c9
je 0x10022dc0
sub eax, 0x17
je 0x10022dfa
jmp 0x10022dcd
clc
bound ebx, qword [ecx + 0x44c7c17e]
and al, 0x14
add dword [eax], eax
add byte [eax], al
add ecx, 0x17
cmp ecx, 0x24e0
jbe 0x10022db0
jmp 0x10022e69
cld
outsb dx, byte [esi]
into
je 0x10022e24
mov ecx, 0x3043
mov eax, ecx
sub eax, 0x3043
je 0x10022e05
sub eax, 0x34
jne 0x10022e0d
stosd dword es:[edi], eax
mov bl, byte [eax]
in al, dx
cmp eax, 0x1424448b
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x14], 0
add ecx, 0x34
cmp ecx, 0x3077
jbe 0x10022de7
cmp dword [esi], 0
je 0x10022e41
lea ecx, [ecx]
mov ecx, dword [esp + 0x24]
dec dword [esi]
mov eax, dword [esp + 0x20]
mov dl, byte [ecx]
mov byte [eax], dl
inc eax
inc ecx
cmp dword [esi], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
jne 0x10022e20
mov edx, dword [esp + 0x18]
dec dword [esi]
jmp case.0x10022d67.31506
nop
invalid
mov edx, dword [esp + 0x18]
add edx, 0x32
mov dword [esp + 0x18], edx
cmp edx, dword [esp + 0x2c]
jbe 0x10022ab2
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret