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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x348
lea eax, [ebp - 0x18]
mov dword [eax - 4], esp
mov dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x41dcc0
mov ecx, dword fs:[0]
mov dword [eax], ecx
mov dword fs:[0], eax
lea eax, [ebp - 0x354]
push 0x208
push 0
push eax
call fcn.005e2800
add esp, 0xc
xorpd xmm0, xmm0
movsd xmm4, qword [0x6120e8]
movsd xmm5, qword [0x6120f0]
movsd xmm6, qword [0x6120f8]
movsd xmm7, qword [0x612100]
xorpd xmm3, xmm3
movapd xmm1, xmm3
mulsd xmm1, qword [0x6120d0]
mulsd xmm1, xmm3
movapd xmm2, xmm3
mulsd xmm2, xmm3
subsd xmm1, xmm2
movapd xmm2, xmm3
mulsd xmm2, qword [0x6120d8]
mulsd xmm2, xmm3
addsd xmm2, qword [0x6120e0]
divsd xmm1, xmm2
addsd xmm1, xmm0
movapd xmm2, xmm3
mulsd xmm2, xmm4
addsd xmm2, xmm1
movapd xmm0, xmm5
cmpltsd xmm0, xmm1
andpd xmm2, xmm0
andnpd xmm0, xmm1
orpd xmm0, xmm2
addsd xmm3, xmm6
ucomisd xmm7, xmm3
ja 0x412399
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x412432
movdqa xmm1, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [ebp + eax - 0x138], xmm1
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
jne 0x412444
movsd xmm1, qword [0x612130]
movapd xmm2, xmm0
subsd xmm2, xmm1
cvttsd2si eax, xmm2
lea ecx, [0x41240a]
mov dword [ebp - 0x28], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm0
ucomisd xmm0, xmm1
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x24], ecx
shr ecx, 0x10
mov dword [ebp - 0x2c], ecx
mov edi, 0xff
xor ebx, ebx
xor ecx, ecx
xor edx, edx
inc edx
cmp edi, 2
jb 0x4124b4
mov esi, 0xc
mov dword [ebp - 0x20], edi
cmp ecx, 3
ja 0x41250e
movzx eax, bl
mov al, byte [ebp + eax - 0x138]
mov edi, dword [ebp - 0x28]
lea ebx, [ecx + edi]
add ebx, 0xfffffffc
add al, byte [ebx]
inc ecx
movzx edi, al
add al, 0x15
cmp ecx, 0x14
mov ebx, 0
cmova ecx, ebx
movzx ebx, al
cmovbe ebx, edi
mov eax, ebx
and eax, edx
movzx eax, al
dec esi
je 0x412551
xor edx, edx
mov edi, dword [ebp - 0x20]
div edi
mov eax, edx
cmp edi, eax
je 0x412588
dec edi
jne 0x4124a2
xorpd xmm4, xmm4
movsd xmm5, qword [0x612720]
movsd xmm6, qword [0x612728]
movsd xmm7, qword [0x612408]
movsd xmm2, qword [0x612730]
xorpd xmm0, xmm0
movapd xmm1, xmm4
mulsd xmm1, qword [0x612708]
mulsd xmm1, xmm4
movapd xmm3, xmm4
mulsd xmm3, xmm4
subsd xmm1, xmm3
movapd xmm3, xmm4
mulsd xmm3, qword [0x612710]
mulsd xmm3, xmm4
addsd xmm3, qword [0x612718]
divsd xmm1, xmm3
addsd xmm1, xmm0
movapd xmm3, xmm4
mulsd xmm3, xmm5
addsd xmm3, xmm1
movapd xmm0, xmm6
cmpltsd xmm0, xmm1
andpd xmm3, xmm0
andnpd xmm0, xmm1
orpd xmm0, xmm3
addsd xmm4, xmm7
ucomisd xmm2, xmm4
ja 0x4125b7
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x41266e
lea eax, [0x412643]
mov dword [ebp - 0x34], eax
movdqa xmm1, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [ebp + eax - 0x138], xmm1
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
jne 0x412689
movsd xmm1, qword [0x612130]
movapd xmm2, xmm0
subsd xmm2, xmm1
cvttsd2si eax, xmm2
lea ecx, [0x412628]
mov dword [ebp - 0x28], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm0
ucomisd xmm0, xmm1
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x24], ecx
shr ecx, 0x10
mov dword [ebp - 0x2c], ecx
mov edi, 0xff
xor ecx, ecx
xor ebx, ebx
xor edx, edx
inc edx
cmp edi, 2
jb 0x4126f9
mov dword [ebp - 0x20], edi
mov edi, 0xc
cmp ecx, 3
ja 0x41274b
movzx eax, bl
mov bl, byte [ebp + eax - 0x138]
mov eax, dword [ebp - 0x28]
add eax, ecx
add eax, 0xfffffffc
add bl, byte [eax]
inc ecx
movzx eax, bl
add bl, 0x1f
cmp ecx, 0x1e
movzx ebx, bl
cmovbe ebx, eax
mov eax, 0
cmova ecx, eax
movzx esi, bl
mov eax, edx
and eax, esi
dec edi
je 0x41278c
xor edx, edx
div dword [ebp - 0x20]
mov eax, edx
mov edi, dword [ebp - 0x20]
cmp edi, eax
je 0x4127c4
dec edi
jne 0x4126e7
movzx eax, byte [ebp - 0x137]
mov dword [ebp - 0x28], eax
mov ecx, eax
mov al, byte [ebp - 0x133]
mov byte [ebp - 0x24], al
movzx eax, byte [ebp + esi - 0x138]
mov edx, dword [ebp - 0x34]
mov bl, byte [edx]
mov bh, byte [edx + 1]
mov dl, byte [ebp + ecx - 0x138]
add dl, byte [ebp - 0x135]
movzx edi, dl
mov dh, byte [ebp + edi - 0x138]
movzx esi, byte [ebp - 0x131]
mov dword [ebp - 0x30], eax
movzx ecx, byte [ebp + eax - 0x138]
mov dword [ebp - 0x20], ecx
mov byte [ebp + eax - 0x138], dh
mov dh, byte [ebp + esi - 0x138]
mov byte [ebp + edi - 0x138], dh
mov eax, dword [ebp - 0x28]
mov dh, al
inc dh
movzx ecx, dh
mov dh, byte [ebp + ecx - 0x138]
mov byte [ebp + esi - 0x138], dh
mov eax, dword [ebp - 0x20]
mov byte [ebp + ecx - 0x138], al
add bh, 0x40
shl bl, 4
add bl, 0xe0
or bl, bh
movzx ecx, byte [ebp + edi - 0x138]
add ecx, eax
mov edi, 0xff
and ecx, edi
mov edi, 0xff
movzx eax, bl
mov dword [ebp - 0x2c], eax
xor bl, byte [ebp + ecx - 0x138]
movzx ecx, byte [ebp + esi - 0x138]
mov eax, dword [ebp - 0x30]
movzx esi, byte [ebp + eax - 0x138]
add esi, ecx
mov al, byte [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
add al, byte [ebp + ecx - 0x138]
mov byte [ebp - 0x24], al
movzx ecx, al
movzx ecx, byte [ebp + ecx - 0x138]
add ecx, esi
and ecx, edi
movzx ecx, byte [ebp + ecx - 0x138]
xor bl, byte [ebp + ecx - 0x138]
add dl, byte [ebp - 0x20]
mov eax, dword [ebp - 0x34]
mov dh, byte [eax + 2]
mov al, byte [eax + 3]
movzx edi, dl
mov ah, byte [ebp + edi - 0x138]
mov ecx, dword [ebp - 0x2c]
movzx esi, byte [ebp + ecx - 0x138]
mov dword [ebp - 0x20], esi
mov byte [ebp + ecx - 0x138], ah
movzx ebx, bl
mov ah, byte [ebp + ebx - 0x138]
mov byte [ebp + edi - 0x138], ah
mov ecx, dword [ebp - 0x28]
mov ah, cl
add ah, 2
movzx esi, ah
mov ah, byte [ebp + esi - 0x138]
mov byte [ebp + ebx - 0x138], ah
mov ecx, dword [ebp - 0x20]
mov byte [ebp + esi - 0x138], cl
add al, 0x40
shl dh, 4
add dh, 0xe0
or dh, al
movzx eax, byte [ebp + edi - 0x138]
add eax, ecx
mov edi, ecx
mov ecx, 0xff
and eax, ecx
movzx ecx, dh
mov dword [ebp - 0x30], ecx
xor dh, byte [ebp + eax - 0x138]
movzx eax, byte [ebp + ebx - 0x138]
mov bh, dl
mov esi, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x2c]
movzx ecx, byte [ebp + ecx - 0x138]
add ecx, eax
mov al, byte [ebp - 0x24]
add al, byte [ebp + edi - 0x138]
mov byte [ebp - 0x24], al
movzx eax, al
movzx eax, byte [ebp + eax - 0x138]
add eax, ecx
mov ecx, 0xff
and eax, ecx
movzx eax, byte [ebp + eax - 0x138]
xor dh, byte [ebp + eax - 0x138]
mov eax, edi
add bh, al
mov byte [ebp - 0x14b], dh
mov ah, byte [esi + 4]
mov bl, byte [esi + 5]
movzx esi, bh
mov al, byte [ebp + esi - 0x138]
mov dword [ebp - 0x2c], esi
mov ecx, dword [ebp - 0x30]
movzx edi, byte [ebp + ecx - 0x138]
mov dword [ebp - 0x20], edi
mov byte [ebp + ecx - 0x138], al
movzx edi, dh
mov al, byte [ebp + edi - 0x138]
mov byte [ebp + esi - 0x138], al
mov ecx, dword [ebp - 0x28]
mov al, cl
add al, 3
movzx ecx, al
mov al, byte [ebp + ecx - 0x138]
mov byte [ebp + edi - 0x138], al
mov edx, dword [ebp - 0x20]
mov byte [ebp + ecx - 0x138], dl
movzx ecx, byte [ebp + edi - 0x138]
mov esi, dword [ebp - 0x30]
movzx esi, byte [ebp + esi - 0x138]
add esi, ecx
mov al, byte [ebp - 0x24]
add al, byte [ebp + edx - 0x138]
mov byte [ebp - 0x24], al
movzx ecx, al
movzx ecx, byte [ebp + ecx - 0x138]
add ecx, esi
add bl, 0x40
shl ah, 4
add ah, 0xe0
or ah, bl
mov esi, dword [ebp - 0x2c]
movzx esi, byte [ebp + esi - 0x138]
add esi, edx
mov edx, 0xff
and esi, edx
mov dh, byte [ebp + esi - 0x138]
xor dh, ah
mov esi, 0xff
and ecx, esi
movzx ecx, byte [ebp + ecx - 0x138]
xor dh, byte [ebp + ecx - 0x138]
mov byte [ebp - 0x14a], dh
mov ecx, dword [ebp - 0x28]
add cl, 4
movzx ecx, cl
mov dword [ebp - 0x28], ecx
xor esi, esi
add bh, byte [ebp - 0x20]
mov ecx, dword [ebp - 0x34]
mov al, byte [ecx + esi*2 + 6]
mov byte [ebp - 0x30], al
movzx edi, ah
mov al, byte [ecx + esi*2 + 7]
mov byte [ebp - 0x2c], al
movzx eax, byte [ebp + edi - 0x138]
mov dword [ebp - 0x20], eax
movzx eax, bh
mov dword [ebp - 0x38], eax
mov dl, byte [ebp + eax - 0x138]
mov byte [ebp + edi - 0x138], dl
movzx edx, dh
mov bl, byte [ebp + edx - 0x138]
mov byte [ebp + eax - 0x138], bl
mov ch, bh
mov ebx, dword [ebp - 0x28]
add ebx, esi
mov eax, 0xff
and ebx, eax
mov cl, byte [ebp + ebx - 0x138]
mov byte [ebp + edx - 0x138], cl
mov eax, dword [ebp - 0x20]
mov byte [ebp + ebx - 0x138], al
mov bh, ch
mov bl, byte [ebp - 0x24]
add bl, byte [ebp + eax - 0x138]
mov ah, byte [ebp - 0x2c]
movzx ecx, byte [ebp + edx - 0x138]
movzx edx, byte [ebp + edi - 0x138]
add edx, ecx
mov byte [ebp - 0x24], bl
movzx ecx, bl
movzx ecx, byte [ebp + ecx - 0x138]
add ecx, edx
mov al, byte [ebp - 0x30]
shl al, 4
add al, 0xe0
add ah, 0x40
or ah, al
mov edx, dword [ebp - 0x38]
movzx edx, byte [ebp + edx - 0x138]
add edx, dword [ebp - 0x20]
mov edi, 0xff
and edx, edi
mov dh, byte [ebp + edx - 0x138]
xor dh, ah
mov edi, 0xff
and ecx, edi
movzx ecx, byte [ebp + ecx - 0x138]
xor dh, byte [ebp + ecx - 0x138]
mov byte [ebp + esi - 0x149], dh
inc esi
cmp esi, 7
jne 0x412a7d
add dword [ebp - 0x28], esi
xor esi, esi
add bh, byte [ebp - 0x20]
mov ecx, dword [ebp - 0x34]
mov al, byte [ecx + esi*2 + 0x14]
mov byte [ebp - 0x30], al
movzx edi, ah
mov al, byte [ecx + esi*2 + 0x15]
mov byte [ebp - 0x2c], al
movzx eax, byte [ebp + edi - 0x138]
mov dword [ebp - 0x20], eax
movzx eax, bh
mov dword [ebp - 0x38], eax
mov dl, byte [ebp + eax - 0x138]
mov byte [ebp + edi - 0x138], dl
movzx edx, dh
mov bl, byte [ebp + edx - 0x138]
mov byte [ebp + eax - 0x138], bl
mov ch, bh
movzx ebx, byte [ebp - 0x28]
mov cl, byte [ebp + ebx - 0x138]
mov byte [ebp + edx - 0x138], cl
mov eax, dword [ebp - 0x20]
mov byte [ebp + ebx - 0x138], al
mov bh, ch
mov bl, byte [ebp - 0x24]
add bl, byte [ebp + eax - 0x138]
movzx ecx, byte [ebp + edx - 0x138]
movzx edx, byte [ebp + edi - 0x138]
add edx, ecx
mov byte [ebp - 0x24], bl
movzx ecx, bl
movzx ecx, byte [ebp + ecx - 0x138]
add ecx, edx
mov al, byte [ebp - 0x30]
shl al, 4
add al, 0xe0
mov ah, byte [ebp - 0x2c]
add ah, 0x40
or ah, al
mov edx, dword [ebp - 0x38]
movzx edx, byte [ebp + edx - 0x138]
add edx, dword [ebp - 0x20]
mov edi, 0xff
and edx, edi
mov dh, byte [ebp + edx - 0x138]
xor dh, ah
and ecx, edi
movzx ecx, byte [ebp + ecx - 0x138]
xor dh, byte [ebp + ecx - 0x138]
mov byte [ebp + esi - 0x142], dh
inc esi
mov ecx, dword [ebp - 0x28]
inc cl
mov dword [ebp - 0x28], ecx
cmp esi, 9
jne 0x412b72
mov byte [ebp - 0x139], 0
mov dword [ebp - 0x10], 0xffffffff
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x48]
lea eax, [ebp - 0x14b]
lea edi, [ebp - 0x138]
mov ecx, edi
push eax
call fcn.00401278
xor eax, eax
mov dword [ebp - 0x10], eax
mov ecx, esi
push eax
push edi
call fcn.004454fe
mov esi, eax
push dword [ebp - 0x120]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [ebp - 0x124]
cmp ecx, 8
jb 0x412ce2
mov eax, dword [ebp - 0x138]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x412cd8
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x412d17
push edx
push eax
call fcn.005db412
add esp, 8
mov dword [ebp - 0x10], 0xffffffff
push 0x104
lea edi, [ebp - 0x354]
push edi
push 0
call esi
push edi
call fcn.00411d0c
add esp, 4
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
add esp, 0x348
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.005f5844
push ebp
sub esp, 0xc
add ebp, 0xc
push dword [ebp - 0x120]
call fcn.005fd8d5
add esp, 4
mov ecx, dword [ebp - 0x124]
cmp ecx, 8
jb 0x412d70
mov eax, dword [ebp - 0x138]
lea edx, [ecx + ecx]
add edx, 2
cmp edx, 0x1000
jb 0x412d66
mov edx, eax
add edx, 0xfffffffc
mov eax, dword [eax - 4]
sub edx, eax
cmp edx, 0x20
jae 0x412d75
push edx
push eax
call fcn.005db412
add esp, 8
add esp, 0xc
pop ebp
ret
call fcn.005f5844