Function at 0x834470
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x178
fld qword [0x89a578]
fld qword [0x89a578]
fld st(0)
fmul st(1)
fld st(0)
fmul qword [0x8bb7b8]
fsub st(1)
fxch st(1)
fmul qword [0x8a8ca8]
fadd qword [0x8bb7b0]
fdivp st(1)
faddp st(2)
fld st(1)
fcomp qword [0x8bb7a8]
fnstsw ax
test ah, 0x41
jne 0x8344be
fld st(0)
fmul qword [0x8bb7a0]
fsubp st(2)
fadd qword [0x8a1578]
fcom qword [0x8bb798]
fnstsw ax
test ah, 1
jne 0x834485
fxch st(1)
fst qword [ebp - 0x40]
fxch st(1)
fstp st(0)
fcomp qword [0x89a578]
fnstsw ax
test ah, 1
je 0x834536
pop ebp
xor esp, dword [ebp + 0x4c477570]
jl 0x834550
jne 0x834530
jae 0x83452c
push 0x4f
inc ecx
and byte [esp + ecx*4], ch
mov dh, 0x89
mov ecx, 0xc07fba7e
mov ecx, es
mov esp, eax
test edx, eax
xchg byte [eax - 0x3f813e81], bh
mov eax, eax
add ebx, 0xc08ab582
test dword [ebx - 0x4974497f], edi
mov eax, ebx
jg 0x8344e5
add esp, 0xc185bd84
invalid
mov bh, 0x87
ret
mov ecx, 0x986e9
add bh, al
inc ebp
enter 0x44fb, 0xffffffffffffff83
add bh, al
inc ebp
fsub st(7)
inc esp
add dword [eax], 0x33
ror byte [eax - 0x13ffa7c], 0xff
inc dword [eax + 0x3d]
add byte [ecx], al
add byte [eax], al
mov dword [ebp - 0x38], 0x8344fb
mov dword [ebp - 0x28], 0x8344e7
xor eax, eax
mov byte [ebp + eax - 0x140], al
inc eax
cmp eax, 0x100
add dword [eax], eax
add byte [edx - 0xf], dh
jb 0x834546
fld qword [ebp - 0x40]
push ebx
push esi
mov byte [ebp - 8], 0
mov eax, 0xff
mov esi, dword [ebp - 8]
push edi
xor edi, edi
mov dword [ebp - 0x1c], eax
mov ebx, 1
mov dword [ebp - 0x20], 0
cmp eax, ebx
jbe 0x834584
lea ebx, [ebx + ebx + 1]
cmp ebx, eax
jb 0x83457c
cmp edi, 3
ja case.default.0x834589
jmp dword [edi*4 + 0x834ed8]
fld st(0)
and esi, 0xff
call fcn.00848444
mov cl, byte [ebp + esi - 0x140]
jmp 0x834605
fld st(0)
and esi, 0xff
call fcn.00848444
mov cl, byte [ebp + esi - 0x140]
shr eax, 8
jmp 0x834605
fld st(0)
and esi, 0xff
call fcn.00848444
mov cl, byte [ebp + esi - 0x140]
shr eax, 0x10
jmp 0x834605
fld st(0)
and esi, 0xff
call fcn.00848444
mov cl, byte [ebp + esi - 0x140]
shr eax, 0x18
jmp 0x834605
mov eax, dword [ebp - 0x28]
and esi, 0xff
mov cl, byte [eax + edi - 4]
mov al, byte [ebp + esi - 0x140]
add cl, al
inc edi
cmp edi, 0x18
mov byte [ebp - 8], cl
jb 0x834618
xor edi, edi
add cl, 0x18
mov byte [ebp - 8], cl
mov esi, dword [ebp - 8]
mov eax, dword [ebp - 0x20]
mov edx, esi
and edx, 0xff
and edx, ebx
inc eax
cmp eax, 0xb
mov dword [ebp - 0x20], eax
jbe 0x834638
mov eax, edx
xor edx, edx
div dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, edx
jb 0x834584
je 0x834670
mov bl, byte [ebp + eax - 0x140]
lea edx, [ebp + edx - 0x140]
lea ecx, [ebp + eax - 0x140]
mov al, byte [edx]
xor bl, al
mov byte [ecx], bl
mov al, bl
mov bl, byte [edx]
xor bl, al
mov byte [edx], bl
mov al, byte [ecx]
mov dl, bl
xor al, dl
mov byte [ecx], al
mov eax, dword [ebp - 0x1c]
dec eax
mov dword [ebp - 0x1c], eax
jne 0x83456c
mov dl, byte [ebp - 0x139]
mov edi, dword [ebp - 0x38]
and esi, 0xff
mov byte [ebp - 0x24], dl
xor edx, edx
mov bl, byte [ebp - 0x13d]
mov al, byte [ebp + esi - 0x140]
mov dl, byte [edi]
mov byte [ebp - 8], al
xor eax, eax
mov al, byte [edi + 1]
sub edx, 0x7e
sub eax, 0xb5
mov cl, byte [ebp - 0x13b]
shl edx, 4
or eax, edx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 8]
and eax, 0xff
fstp st(0)
mov dl, byte [ebp + eax - 0x140]
lea esi, [ebp + eax - 0x140]
mov byte [ebp - 0x10], dl
mov edx, dword [ebp - 0x13f]
mov eax, edx
and eax, 0xff
mov al, byte [ebp + eax - 0x140]
add al, bl
inc dl
mov byte [ebp - 0x30], al
mov byte [ebp - 0x14], dl
mov edx, dword [ebp - 0x30]
and edx, 0xff
mov bl, byte [ebp + edx - 0x140]
lea edx, [ebp + edx - 0x140]
mov byte [esi], bl
mov ebx, dword [ebp - 0x24]
and ebx, 0xff
mov dword [ebp - 0x20], edx
lea ebx, [ebp + ebx - 0x140]
mov dword [ebp - 0xc], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0xc]
and edx, 0xff
lea edx, [ebp + edx - 0x140]
mov dword [ebp - 0x18], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x18]
mov dl, byte [ebp - 0x10]
mov byte [ebx], dl
mov edx, dword [ebp - 0x10]
and edx, 0xff
mov dword [ebp - 0x1c], edx
mov bl, byte [ebp + edx - 0x140]
add cl, bl
mov ebx, dword [ebp - 0xc]
mov byte [ebp - 0x2c], cl
mov edx, dword [ebp - 0x2c]
mov bl, byte [ebx]
and edx, 0xff
mov dl, byte [ebp + edx - 0x140]
add edx, ebx
mov bl, byte [esi]
add edx, ebx
mov esi, dword [ebp - 0x1c]
and edx, 0xff
xor ebx, ebx
mov bl, byte [ebp + edx - 0x140]
mov edx, dword [ebp - 0x20]
mov dl, byte [edx]
mov bl, byte [ebp + ebx - 0x140]
add edx, esi
and edx, 0xff
xor bl, byte [ebp + edx - 0x140]
mov dl, byte [ebp - 0x28]
xor bl, dl
mov dl, byte [edi + 2]
mov byte [ebp - 0x24], bl
mov bl, byte [edi + 3]
add dl, 2
shl dl, 4
add bl, 0x4b
or dl, bl
mov byte [ebp - 1], dl
mov edx, dword [ebp - 0x28]
and edx, 0xff
lea esi, [ebp + edx - 0x140]
mov dl, byte [ebp + edx - 0x140]
mov byte [ebp - 0x10], dl
mov edx, dword [ebp - 0x18]
mov bl, byte [edx]
mov dl, byte [ebp - 0x14]
add al, bl
inc dl
mov byte [ebp - 0x30], al
mov byte [ebp - 0x14], dl
mov edx, dword [ebp - 0x30]
and edx, 0xff
mov bl, byte [ebp + edx - 0x140]
lea edx, [ebp + edx - 0x140]
mov byte [esi], bl
mov ebx, dword [ebp - 0x24]
and ebx, 0xff
mov dword [ebp - 0x20], edx
lea ebx, [ebp + ebx - 0x140]
mov dword [ebp - 0xc], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0xc]
and edx, 0xff
lea edx, [ebp + edx - 0x140]
mov dword [ebp - 0x18], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x18]
mov dl, byte [ebp - 0x10]
mov byte [ebx], dl
mov edx, dword [ebp - 0x10]
and edx, 0xff
mov dword [ebp - 0x1c], edx
mov bl, byte [ebp + edx - 0x140]
add cl, bl
mov ebx, dword [ebp - 0xc]
mov byte [ebp - 0x2c], cl
mov edx, dword [ebp - 0x2c]
mov bl, byte [ebx]
and edx, 0xff
mov dl, byte [ebp + edx - 0x140]
add edx, ebx
mov bl, byte [esi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x140]
mov edx, dword [ebp - 0x20]
mov esi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x1c]
add ebx, edx
mov dl, byte [ebp + esi - 0x140]
and ebx, 0xff
mov esi, 2
xor dl, byte [ebp + ebx - 0x140]
mov bl, byte [ebp - 1]
mov byte [ebp - 8], bl
xor dl, bl
mov bl, byte [edi + 5]
mov byte [ebp - 0x24], dl
add bl, 0x4b
movsx dx, dl
mov word [ebp - 0x178], dx
xor edx, edx
mov dl, byte [edi + 4]
add dl, 2
shl dl, 4
or dl, bl
mov byte [ebp - 1], dl
mov edx, dword [ebp - 8]
and edx, 0xff
mov dword [ebp - 0x34], 0xb
lea edi, [ebp + edx - 0x140]
mov dl, byte [ebp + edx - 0x140]
mov byte [ebp - 0x10], dl
mov edx, dword [ebp - 0x18]
mov bl, byte [edx]
mov dl, byte [ebp - 0x14]
add al, bl
inc dl
mov byte [ebp - 0x30], al
mov byte [ebp - 0x14], dl
mov edx, dword [ebp - 0x30]
and edx, 0xff
mov bl, byte [ebp + edx - 0x140]
lea edx, [ebp + edx - 0x140]
mov byte [edi], bl
mov ebx, dword [ebp - 0x24]
and ebx, 0xff
mov dword [ebp - 0x20], edx
lea ebx, [ebp + ebx - 0x140]
mov dword [ebp - 0xc], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0xc]
and edx, 0xff
lea edx, [ebp + edx - 0x140]
mov dword [ebp - 0x18], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x18]
mov dl, byte [ebp - 0x10]
mov byte [ebx], dl
mov edx, dword [ebp - 0x10]
and edx, 0xff
mov dword [ebp - 0x1c], edx
mov bl, byte [ebp + edx - 0x140]
add cl, bl
mov ebx, dword [ebp - 0xc]
mov byte [ebp - 0x2c], cl
mov edx, dword [ebp - 0x2c]
mov bl, byte [ebx]
and edx, 0xff
mov dl, byte [ebp + edx - 0x140]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x140]
mov edx, dword [ebp - 0x20]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x1c]
add ebx, edx
mov dl, byte [ebp + edi - 0x140]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x140]
mov bl, byte [ebp - 1]
mov byte [ebp - 8], bl
xor dl, bl
mov byte [ebp - 0x24], dl
movsx dx, dl
mov word [ebp - 0x176], dx
mov edx, dword [ebp - 0x38]
lea edi, [edx + 4]
lea edx, [ebp - 0x176]
mov dword [ebp - 0x28], edx
jmp 0x8349f0
mov edi, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x28]
mov bl, byte [edi + 2]
add edi, 2
add edx, 2
mov dword [ebp - 0x28], edx
add bl, 2
mov dl, byte [edi + 1]
mov dword [ebp - 0x3c], edi
add dl, 0x4b
inc esi
shl bl, 4
or dl, bl
mov byte [ebp - 1], dl
mov edx, dword [ebp - 8]
and edx, 0xff
lea edi, [ebp + edx - 0x140]
mov dl, byte [ebp + edx - 0x140]
mov byte [ebp - 0x10], dl
mov edx, dword [ebp - 0x18]
mov bl, byte [edx]
mov dl, byte [ebp - 0x14]
add al, bl
inc dl
mov byte [ebp - 0x30], al
mov byte [ebp - 0x14], dl
mov edx, dword [ebp - 0x30]
and edx, 0xff
mov bl, byte [ebp + edx - 0x140]
lea edx, [ebp + edx - 0x140]
mov byte [edi], bl
mov ebx, dword [ebp - 0x24]
and ebx, 0xff
mov dword [ebp - 0x20], edx
lea ebx, [ebp + ebx - 0x140]
mov dword [ebp - 0xc], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0xc]
and edx, 0xff
lea edx, [ebp + edx - 0x140]
mov dword [ebp - 0x18], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x18]
mov dl, byte [ebp - 0x10]
mov byte [ebx], dl
mov edx, dword [ebp - 0x10]
and edx, 0xff
mov dword [ebp - 0x1c], edx
mov bl, byte [ebp + edx - 0x140]
add cl, bl
mov ebx, dword [ebp - 0xc]
mov byte [ebp - 0x2c], cl
mov edx, dword [ebp - 0x2c]
mov bl, byte [ebx]
and edx, 0xff
mov dl, byte [ebp + edx - 0x140]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x140]
mov edx, dword [ebp - 0x20]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x1c]
add ebx, edx
mov dl, byte [ebp + edi - 0x140]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x140]
mov bl, byte [ebp - 1]
mov byte [ebp - 8], bl
xor dl, bl
test esi, esi
mov byte [ebp - 0x24], dl
jbe 0x834b10
mov edi, dword [ebp - 0x28]
movsx dx, dl
mov word [edi], dx
mov edx, dword [ebp - 0x34]
dec edx
mov dword [ebp - 0x34], edx
jne 0x8349ed
mov edi, dword [ebp - 0x38]
inc esi
mov bl, byte [edi + esi*2]
mov dl, byte [edi + esi*2 + 1]
add bl, 2
add dl, 0x4b
shl bl, 4
or dl, bl
mov byte [ebp - 1], dl
mov edx, dword [ebp - 8]
and edx, 0xff
lea edi, [ebp + edx - 0x140]
mov dl, byte [ebp + edx - 0x140]
mov byte [ebp - 0x10], dl
mov edx, dword [ebp - 0x14]
and edx, 0xff
mov bl, byte [ebp + edx - 0x140]
mov dl, byte [ebp - 0x14]
add al, bl
inc dl
mov byte [ebp - 0x30], al
mov byte [ebp - 0x14], dl
mov edx, dword [ebp - 0x30]
and edx, 0xff
mov bl, byte [ebp + edx - 0x140]
lea edx, [ebp + edx - 0x140]
mov byte [edi], bl
mov ebx, dword [ebp - 0x24]
and ebx, 0xff
mov dword [ebp - 0x20], edx
lea ebx, [ebp + ebx - 0x140]
mov dword [ebp - 0xc], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0xc]
and edx, 0xff
lea edx, [ebp + edx - 0x140]
mov dword [ebp - 0x18], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x18]
mov dl, byte [ebp - 0x10]
mov byte [ebx], dl
mov edx, dword [ebp - 0x10]
and edx, 0xff
mov dword [ebp - 0x1c], edx
mov bl, byte [ebp + edx - 0x140]
add cl, bl
mov ebx, dword [ebp - 0xc]
mov byte [ebp - 0x2c], cl
mov edx, dword [ebp - 0x2c]
mov bl, byte [ebx]
and edx, 0xff
mov dl, byte [ebp + edx - 0x140]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x140]
mov edx, dword [ebp - 0x20]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x1c]
add ebx, edx
mov dl, byte [ebp + edi - 0x140]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x140]
mov bl, byte [ebp - 1]
mov byte [ebp - 8], bl
xor dl, bl
test esi, esi
mov byte [ebp - 0x24], dl
jbe 0x834c3f
movsx dx, dl
mov word [ebp + esi*2 - 0x17a], dx
mov edx, dword [ebp - 0x38]
inc esi
mov bl, byte [edx + esi*2]
lea edi, [edx + esi*2]
add bl, 2
mov dword [ebp - 0x3c], edi
mov dl, byte [edi + 1]
add dl, 0x4b
shl bl, 4
or dl, bl
mov byte [ebp - 1], dl
mov edx, dword [ebp - 8]
and edx, 0xff
lea edi, [ebp + edx - 0x140]
mov dl, byte [ebp + edx - 0x140]
mov byte [ebp - 0x10], dl
mov edx, dword [ebp - 0x18]
mov bl, byte [edx]
mov dl, byte [ebp - 0x14]
add al, bl
inc dl
mov byte [ebp - 0x30], al
mov byte [ebp - 0x14], dl
mov edx, dword [ebp - 0x30]
and edx, 0xff
mov bl, byte [ebp + edx - 0x140]
lea edx, [ebp + edx - 0x140]
mov byte [edi], bl
mov ebx, dword [ebp - 0x24]
and ebx, 0xff
mov dword [ebp - 0x20], edx
lea ebx, [ebp + ebx - 0x140]
mov dword [ebp - 0xc], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0xc]
and edx, 0xff
lea edx, [ebp + edx - 0x140]
mov dword [ebp - 0x18], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x18]
mov dl, byte [ebp - 0x10]
mov byte [ebx], dl
mov edx, dword [ebp - 0x10]
and edx, 0xff
mov dword [ebp - 0x1c], edx
mov bl, byte [ebp + edx - 0x140]
add cl, bl
mov ebx, dword [ebp - 0xc]
mov byte [ebp - 0x2c], cl
mov edx, dword [ebp - 0x2c]
mov bl, byte [ebx]
and edx, 0xff
mov dl, byte [ebp + edx - 0x140]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x140]
mov edx, dword [ebp - 0x20]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x1c]
add ebx, edx
mov dl, byte [ebp + edi - 0x140]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x140]
mov bl, byte [ebp - 1]
mov byte [ebp - 8], bl
xor dl, bl
test esi, esi
mov byte [ebp - 0x24], dl
jbe 0x834d5b
movsx dx, dl
mov word [ebp + esi*2 - 0x17a], dx
lea ebx, [esi + 1]
cmp ebx, 0x1c
jge 0x834eb0
mov edi, dword [ebp - 0x3c]
lea edx, [ebp + esi*2 - 0x17a]
mov dword [ebp - 0x28], edx
mov edx, 0x1c
sub edx, ebx
mov dword [ebp - 0x34], edx
jmp 0x834d83
mov edi, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x28]
mov bl, byte [edi + 2]
add edi, 2
add edx, 2
mov dword [ebp - 0x28], edx
add bl, 2
mov dl, byte [edi + 1]
mov dword [ebp - 0x3c], edi
add dl, 0x4b
inc esi
shl bl, 4
or dl, bl
mov byte [ebp - 1], dl
mov edx, dword [ebp - 8]
and edx, 0xff
lea edi, [ebp + edx - 0x140]
mov dl, byte [ebp + edx - 0x140]
mov byte [ebp - 0x10], dl
mov edx, dword [ebp - 0x18]
mov bl, byte [edx]
mov dl, byte [ebp - 0x14]
add al, bl
inc dl
mov byte [ebp - 0x30], al
mov byte [ebp - 0x14], dl
mov edx, dword [ebp - 0x30]
and edx, 0xff
mov bl, byte [ebp + edx - 0x140]
lea edx, [ebp + edx - 0x140]
mov byte [edi], bl
mov ebx, dword [ebp - 0x24]
and ebx, 0xff
mov dword [ebp - 0x20], edx
lea ebx, [ebp + ebx - 0x140]
mov dword [ebp - 0xc], ebx
mov bl, byte [ebx]
mov byte [edx], bl
mov edx, dword [ebp - 0x14]
mov ebx, dword [ebp - 0xc]
and edx, 0xff
lea edx, [ebp + edx - 0x140]
mov dword [ebp - 0x18], edx
mov dl, byte [edx]
mov byte [ebx], dl
mov ebx, dword [ebp - 0x18]
mov dl, byte [ebp - 0x10]
mov byte [ebx], dl
mov edx, dword [ebp - 0x10]
and edx, 0xff
mov dword [ebp - 0x1c], edx
mov bl, byte [ebp + edx - 0x140]
add cl, bl
mov ebx, dword [ebp - 0xc]
mov byte [ebp - 0x2c], cl
mov edx, dword [ebp - 0x2c]
mov bl, byte [ebx]
and edx, 0xff
mov dl, byte [ebp + edx - 0x140]
add edx, ebx
mov bl, byte [edi]
add edx, ebx
xor ebx, ebx
and edx, 0xff
mov bl, byte [ebp + edx - 0x140]
mov edx, dword [ebp - 0x20]
mov edi, ebx
mov bl, byte [edx]
mov edx, dword [ebp - 0x1c]
add ebx, edx
mov dl, byte [ebp + edi - 0x140]
and ebx, 0xff
xor dl, byte [ebp + ebx - 0x140]
mov bl, byte [ebp - 1]
mov byte [ebp - 8], bl
xor dl, bl
test esi, esi
mov byte [ebp - 0x24], dl
jbe 0x834ea3
mov edi, dword [ebp - 0x28]
movsx dx, dl
mov word [edi], dx
mov edx, dword [ebp - 0x34]
dec edx
mov dword [ebp - 0x34], edx
jne 0x834d80
pop edi
pop esi
mov word [ebp - 0x144], 0
pop ebx
call fcn.00848e8c
cdq
mov ecx, 0x1a
idiv ecx
mov ax, word [ebp + edx*2 - 0x178]
mov esp, ebp
pop ebp
ret