Function at 0x412ab8
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x39c
push ebx
push esi
push edi
jb 0x412ae5
nop
nop
mov bx, bx
jae 0x412ae5
ljmp 0x9cfb:0x4cc666b7
push 0x10009240
call dword [0x10007018]
test eax, eax
mov dword [ebp - 4], eax
jo 0x412aef
adc byte [ebp - 0x3ba7640], al
jne 0x412afe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pushal
and ah, bh
and bl, ah
test ax, 0x1c2e
sub dx, di
or eax, 0x5fe
popal
mov eax, dword [ebp - 4]
push 0x10009250
push eax
call dword [0x1000702c]
test eax, eax
mov dword [ebp - 4], eax
jne 0x412b2d
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
jbe 0x412b52
push ax
mov al, 0xd8
pop ax
ja 0x412b52
jmp 0xcf7b6449
js 0x412b6e
mov byte [esi], dl
add byte [eax], al
add byte [esi + 0x57], ah
push di
pop di
jns 0x412b6e
jg 0x412aed
clc
mov bh, 0x48
pop ebx
not dword ds:[ebp - 0x46b16772]
adc byte [eax], al
add byte [eax], al
mov ecx, 0x10
xor eax, eax
lea edi, [ebp - 0x44]
rep stosd dword es:[edi], eax
mov ecx, 0x40
lea edi, [ebp - 0x144]
rep stosd dword es:[edi], eax
pushal
and ah, bh
and bl, ah
test ax, 0x1c2e
sub dx, di
or eax, 0x5fe
popal
lea ecx, [ebp - 0x144]
mov byte [ebp - 0x44], 0x37
mov dword [ebp - 0x40], ecx
mov word [ebp - 0x3c], 0x100
jo 0x412bcb
mov si, si
jno 0x412bcb
push 0xffffffffffffffdb
cwde
cmpsd dword [esi], dword es:[edi]
pop edx
mov word [ebx - 0x54], es
jbe 0x412bc0
out dx, eax
stc
fst qword [edi]
loop 0x412b53
mov esi, dword [ebp - 4]
lea edx, [ebp - 0x44]
push edx
call esi
mov cl, al
test cl, cl
je 0x412be3
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ax
push ebx
push edi
test ecx, edi
dec edi
and bx, 0x11e5
sub al, 0x2c
add di, dx
cmp di, 0x1aa7
pop edi
pop ebx
pop ax
mov al, byte [ebp - 0x144]
xor ebx, ebx
test al, al
jbe 0x412c34
mov al, byte [ebp + ebx - 0x143]
lea ecx, [ebp - 0x44]
push ecx
mov byte [ebp - 0x44], 0x32
mov byte [ebp - 0x14], al
call esi
mov cl, al
test cl, cl
je 0x412c34
mov edx, dword [ebp - 0x144]
inc ebx
and edx, 0xff
cmp ebx, edx
jl 0x412c09
js 0x412c51
nop
nop
xchg ebx, ebx
jns 0x412c51
xchg byte cs:[ebx - 0x1dd8f06], dh
add dh, ah
pushal
lahf
dec esi
stosd dword es:[edi], eax
test cl, cl
je 0x412c5e
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
je 0x412c6b
xchg edx, edx
xchg si, si
jne 0x412c6b
cmp esp, esi
add eax, 0x10b97b
add byte [eax], al
mov ecx, 0x10
xor eax, eax
lea edi, [ebp - 0x44]
rep stosd dword es:[edi], eax
mov al, byte [ebp + ebx - 0x143]
mov byte [ebp - 0x44], 0x33
mov byte [ebp - 0x14], al
je 0x412c95
xchg si, si
xchg bh, bh
mov ebx, ebx
jne 0x412c95
fsub st(7)
test al, 0x4d
xchg ebp, eax
mov edi, 0x1000923c
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp - 0x3a]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x39c]
mov word [ebp - 0x3c], 0x258
mov dword [ebp - 0x40], ecx
push ebx
push ecx
add bx, si
test dh, bh
add bx, si
sub cx, 0x1ca2
xor cl, 0x3a
and ebx, eax
and ch, 0x7b
or ecx, 0x7a91
mov bl, dl
pop ecx
pop ebx
lea edx, [ebp - 0x44]
push edx
call dword [ebp - 4]
test al, al
je 0x412cfe
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
js 0x412d1d
nop
nop
jns 0x412d1d
cdq
outsd dx, dword [esi]
push cs
std
inc eax
cmc
dec ecx
outsb dx, byte es:[esi]
lodsb al, byte [esi]
lahf
invalid
mov eax, dword [ebp - 0x397]
mov ecx, dword [ebp - 0x398]
mov edx, dword [ebp - 0x399]
and eax, 0xff
and ecx, 0xff
push eax
mov eax, dword [ebp - 0x39a]
and edx, 0xff
push ecx
mov ecx, dword [ebp - 0x39b]
push edx
mov edx, dword [ebp - 0x39c]
and eax, 0xff
and ecx, 0xff
push eax
mov eax, dword [ebp + 8]
and edx, 0xff
push ecx
push edx
push 0x10009220
push eax
call dword [0x10007074]
add esp, 0x20
push dx
push ecx
mov dl, bh
cmp cx, bx
sub dh, 0x32
pop ecx
pop dx
je 0x412da4
push bx
mov bl, 0xd
pop bx
jne 0x412da4
jbe 0x412e0b
fisub word [ecx + eax*8 - 0x642a330]
fdiv dword [esi - 0x11]
lodsd eax, dword [esi]
push ss
and byte [edi + 0x5e], bl
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
pop esi
pop ebx
mov esp, ebp
pop ebp
ret