Function at 0x434060
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x38
mov eax, dword [0x45c7f4]
mov edx, dword [ecx]
push esi
lea esi, [ecx + 0x18]
shl edx, 5
test byte [eax + 0x1439], 1
movss xmm0, dword [eax + 0x16fc]
movss dword [ebp - 0x1c], xmm0
movss xmm0, dword [eax + 0x1700]
mov dword [ebp - 4], ecx
mov ecx, dword [ecx + 8]
push edi
movss dword [ebp - 0x20], xmm0
mov dword [ebp - 0x14], esi
je 0x4343d0
mov eax, dword [ebx + 0x10]
and eax, 0xffffff
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 0xc]
lea edi, [eax + eax*8]
add eax, eax
mov dword [ebp - 0x18], eax
lea eax, [edi - 6]
add dword [edx + ecx - 0x20], eax
mov esi, dword [esi]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
add eax, esi
push eax
call fcn.00438620
lea edx, [esi + esi*4]
mov esi, dword [ebp - 4]
mov eax, dword [esi + 0x20]
lea ecx, [esi + 0xc]
lea eax, [eax + edx*4]
mov dword [esi + 0x30], eax
lea eax, [edi - 6]
mov esi, dword [ecx]
add eax, esi
push eax
call fcn.0042b4b0
mov edi, dword [ebp - 4]
mov eax, dword [edi + 0x14]
mov ecx, dword [edi + 0x2c]
lea edx, [eax + esi*2]
mov esi, 2
lea eax, [ecx + 1]
mov dword [edi + 0x34], edx
mov dword [ebp - 0x34], eax
mov eax, dword [ebx + 0xc]
movzx ecx, cx
cmp eax, esi
jle 0x434159
mov dword [ebp - 0x10], ecx
nop dword [eax + eax]
mov word [edx], cx
lea edx, [ecx + esi*2]
mov eax, dword [edi + 0x34]
lea ecx, [edx - 2]
inc esi
mov word [eax + 2], cx
mov eax, dword [edi + 0x34]
mov ecx, dword [ebp - 0x10]
mov word [eax + 4], dx
add dword [edi + 0x34], 6
mov eax, dword [ebx + 0xc]
mov edx, dword [edi + 0x34]
cmp esi, eax
jl 0x434130
movzx ecx, cx
shl eax, 3
mov dword [ebp - 0x30], ecx
call fcn.0043b1e0
mov eax, dword [ebx + 0xc]
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov esi, esp
mov dword [ebp - 0x38], esi
lea edx, [eax - 1]
mov dword [ebp - 8], edx
test eax, eax
jle 0x4343b9
movss xmm4, dword [0x44fb0c]
lea eax, [edx*8]
mov edx, dword [ebx + 8]
xorps xmm5, xmm5
mov dword [ebp - 0xc], eax
nop word [eax + eax]
movss xmm3, dword [edx + ecx*8]
lea edi, [edx + 4]
movss xmm2, dword [edx + ecx*8 + 4]
subss xmm3, dword [eax + edx]
subss xmm2, dword [eax + edx + 4]
mov dword [ebp - 0x10], edi
movaps xmm0, xmm3
movss dword [ebp - 0x28], xmm3
movaps xmm1, xmm2
mulss xmm0, xmm3
mulss xmm1, xmm2
movss dword [ebp - 0x24], xmm2
addss xmm1, xmm0
comiss xmm1, xmm5
jbe 0x43421f
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x4341ef
sqrtsd xmm0, xmm0
jmp 0x4341f4
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
movss xmm4, dword [0x44fb0c]
xorps xmm5, xmm5
movss xmm2, dword [ebp - 0x24]
movaps xmm1, xmm4
movss xmm3, dword [ebp - 0x28]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebx + 8]
cvtsd2ss xmm0, xmm0
divss xmm1, xmm0
jmp 0x434222
movaps xmm1, xmm4
mulss xmm2, xmm1
mulss xmm1, xmm3
movss dword [eax + esi], xmm2
xorps xmm1, xmmword [0x450170]
movss dword [eax + esi + 4], xmm1
lea eax, [ecx*8]
inc ecx
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x14], ecx
cmp ecx, dword [ebx + 0xc]
jl 0x4341a0
movss xmm5, dword [0x44fae4]
xor eax, eax
movss xmm6, dword [0x44faa0]
movss xmm7, dword [0x44fc00]
mov edi, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0xc], eax
mov eax, esi
sub eax, edx
xor edx, edx
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 8]
movss xmm2, dword [esi + edx*8]
mov edx, dword [ebp - 0x28]
addss xmm2, dword [esi + eax*8]
movss xmm3, dword [edx + ecx]
addss xmm3, dword [esi + eax*8 + 4]
mov edx, dword [ebp - 0xc]
mulss xmm2, xmm5
mulss xmm3, xmm5
movaps xmm1, xmm2
mulss xmm1, xmm2
movaps xmm0, xmm3
mulss xmm0, xmm3
addss xmm1, xmm0
comiss xmm1, xmm6
jbe 0x4342d5
movaps xmm0, xmm4
divss xmm0, xmm1
movaps xmm1, xmm7
minss xmm1, xmm0
movaps xmm0, xmm1
mulss xmm3, xmm1
mulss xmm2, xmm0
movss xmm1, dword [ecx - 4]
movss xmm0, dword [ecx]
mov eax, dword [edi + 0x30]
mov esi, dword [ebx + 0x10]
mulss xmm2, xmm5
mulss xmm3, xmm5
subss xmm1, xmm2
subss xmm0, xmm3
movss dword [eax], xmm1
movss xmm1, dword [ebp - 0x20]
movss dword [eax + 4], xmm0
mov eax, dword [edi + 0x30]
movss xmm0, dword [ebp - 0x1c]
movss dword [eax + 8], xmm0
movss dword [eax + 0xc], xmm1
mov eax, dword [edi + 0x30]
mov dword [eax + 0x10], esi
addss xmm2, dword [ecx - 4]
addss xmm3, dword [ecx]
mov eax, dword [edi + 0x30]
mov ecx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x34]
movss dword [eax + 0x14], xmm2
movss dword [eax + 0x18], xmm3
mov eax, dword [edi + 0x30]
movss dword [eax + 0x1c], xmm0
movss dword [eax + 0x20], xmm1
mov eax, dword [edi + 0x30]
mov dword [eax + 0x24], ecx
mov eax, dword [edi + 0x34]
mov ecx, dword [ebp - 0x30]
add dword [edi + 0x30], 0x28
lea edx, [ecx + edx*2]
mov word [eax], dx
mov eax, dword [ebp - 8]
lea ecx, [ecx + eax*2]
mov eax, dword [edi + 0x34]
mov word [eax + 2], cx
mov eax, dword [ebp - 8]
movzx ecx, si
lea ecx, [ecx + eax*2]
mov eax, dword [edi + 0x34]
mov word [eax + 4], cx
mov eax, dword [edi + 0x34]
mov word [eax + 6], cx
mov eax, dword [ebp - 0xc]
movzx ecx, si
mov esi, dword [ebp - 0x38]
lea ecx, [ecx + eax*2]
mov eax, dword [edi + 0x34]
mov word [eax + 8], cx
mov eax, dword [edi + 0x34]
mov ecx, dword [ebp - 0x10]
add ecx, 8
mov dword [ebp - 0x10], ecx
mov word [eax + 0xa], dx
mov edx, dword [ebp - 0xc]
mov eax, edx
add dword [edi + 0x34], 0xc
inc edx
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], edx
cmp edx, dword [ebx + 0xc]
jl 0x434282
mov eax, dword [ebp - 0x18]
movzx eax, ax
add dword [edi + 0x2c], eax
lea esp, [ebp - 0x40]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x10
mov eax, dword [ebx + 0xc]
lea edi, [eax - 2]
lea edi, [edi + edi*2]
add dword [edx + ecx - 0x20], edi
mov esi, dword [esi]
add eax, esi
mov ecx, dword [ebp - 0x14]
push eax
call fcn.00438620
lea ecx, [esi + esi*4]
mov esi, dword [ebp - 4]
mov eax, dword [esi + 0x20]
lea eax, [eax + ecx*4]
lea ecx, [esi + 0xc]
mov dword [esi + 0x30], eax
mov esi, dword [ecx]
lea eax, [esi + edi]
push eax
call fcn.0042b4b0
mov edi, dword [ebp - 4]
mov eax, dword [edi + 0x14]
lea eax, [eax + esi*2]
mov dword [edi + 0x34], eax
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x434464
mov esi, dword [ebx + 8]
movss xmm0, dword [ebp - 0x1c]
movss xmm1, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
nop word [eax + eax]
mov eax, dword [edi + 0x30]
lea esi, [esi + 8]
mov ecx, dword [esi - 8]
mov edx, dword [esi - 4]
mov dword [eax], ecx
mov ecx, dword [ebx + 0x10]
mov dword [eax + 4], edx
mov eax, dword [edi + 0x30]
movss dword [eax + 8], xmm0
movss dword [eax + 0xc], xmm1
mov eax, dword [edi + 0x30]
mov dword [eax + 0x10], ecx
add dword [edi + 0x30], 0x14
sub dword [ebp - 0x18], 1
jne 0x434430
mov eax, dword [ebx + 0xc]
mov esi, 2
cmp eax, esi
jle 0x4344a7
nop dword [eax]
mov ecx, dword [edi + 0x34]
mov ax, word [edi + 0x2c]
movzx edx, si
inc esi
mov word [ecx], ax
movzx ecx, word [edi + 0x2c]
mov eax, dword [edi + 0x34]
dec cx
add cx, dx
mov word [eax + 2], cx
mov eax, dword [edi + 0x34]
movzx ecx, word [edi + 0x2c]
add cx, dx
mov word [eax + 4], cx
add dword [edi + 0x34], 6
mov eax, dword [ebx + 0xc]
cmp esi, eax
jl 0x434470
movzx eax, ax
add dword [edi + 0x2c], eax
lea esp, [ebp - 0x40]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x10